0

如果我有一个用 ISO 编码的文件,但想使用 java 以 UTF-8 格式读取文件,我还会得到相同的文本吗?

µÃÿ 等特殊字符会显示相同的内容吗?

4

2 回答 2

1

不,你不会。UTF-8 不会以与 ISO-8859-1 相同的方式对 U+007f 以外的字符进行编码(ISO-8859-1 将 U+0080 到 U+00ff 编码为单个字节\x80\xff而 UTF-8 对每个字符使用两个字节那些字符)。

打开文件时必须使用显式编码规范:new InputStreamReader(new FileInputStream(...), <encoding>)

于 2012-09-19T23:06:13.940 回答
0

简而言之,没有。ISO 中字符的表示方式(按位)与 UTF-8 中字符的表示方式不同。

但是,您可以将文件从 ISO 转换为 UTF-8,但不能将 UTF-8 转换为 ISO,因为 UTF-8 中的可识别字符比 ISO 中的要多得多。

我的建议是检测编码(请参阅:Java:如何确定流的正确字符集编码),然后相应地处理每种情况。

于 2012-09-19T23:11:06.550 回答