繁体   English   中英

2 字节 UTF-8 Java 的无效字节 2,序列错误取决于 Windows/IntelliJ

[英]Invalid byte 2 of 2-byte UTF-8 Java, sequence error depending on Windows/IntelliJ

所以相同的代码在两台设备上运行,两台 PC 都运行 Windows 10,但变量在 IntelliJ 调试器中表示不同,一个可以解码字符串,另一个不能。 两者都访问相同的端点。 这是抛出错误和代码中断的代码片段。 两个代码都在同一个 JRE 上运行,并从同一个端点获取变量值。

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(file);

当我生成 UTF-8 编码的 XML 文件时,它会为该变量引发错误。

未在调试器中显示的 PC1 上引发错误的变量

调试器 var 不抛出错误

在 PC2 上抛出错误的变量

误差变量

我尝试重新安装所有 JRE、IntelliJ 等,仍然没有帮助...

您确定该文件是 UTF-8 编码的吗? 就我而言,我意识到它使用的是 windows-1250 编码。 所以我必须指定一个编码:

InputStream is = ...
InputSource src = new InputSource(new InputStreamReader(is, Charset.forName("cp1250")));
Document xmlDocument = builder.parse(src);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM