在java中读取不同编码的文本文件

时间:2012-09-19 22:58:57

标签: java character-encoding

如果我有一个用ISO编码的文件,但是想用UT读取文件为UTF-8,我仍会得到相同的文字吗?

像μÃ的特殊字符会显示相同吗?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

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

我的建议是检测编码(参见:Java : How to determine the correct charset encoding of a stream),然后相应地处理每个案例。