【发布时间】:2023-03-24 19:44:01
【问题描述】:
我在 jar 中有一个 Unicode(不带 BOM 的 UTF-8)文本文件,它作为资源加载。
URL resource = MyClass.class.getResource("datafile.csv");
InputStream stream = resource.openStream();
BufferedReader reader = new BufferedReader(
new InputStreamReader(stream, Charset.forName("UTF-8")));
这在 Windows 上运行良好,但在 Linux 上似乎无法正确读取文件 - 重音字符出现损坏。我知道不同的机器可以有不同的默认字符集,但我给了它正确的字符集。为什么不使用它?
【问题讨论】:
-
您如何确定角色是否损坏?例如
System.out坏了。 -
数据以网页形式交付,以 UTF-8 编写。 HTTP 标头、XML 标头和 HTTP-equiv 元数据都表示 UTF-8,浏览器确认了这一点。