为了账号安全,请及时绑定邮箱和手机立即绑定

Java:如何确定流的正确字符集编码

Java:如何确定流的正确字符集编码

MM们 2019-06-17 15:51:43
Java:如何确定流的正确字符集编码关于以下线程:Java应用程序:无法正确读取iso-8859-1编码的文件以编程方式确定输入流/文件的正确字符集编码的最佳方法是什么?我尝试使用以下方法:File in =  new File(args[0]);InputStreamReader r = new InputStreamReader(new FileInputStream(in));System.out.println(r.getEncoding());但是在我所知道的用ISO 8859_1编码的文件上,上面的代码会产生ASCII,这是不正确的,并且不允许我将文件的内容正确地呈现回控制台。
查看完整描述

3 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

无法确定任意字节流的编码。这就是编码的本质。编码是指字节值与其表示之间的映射。所以每一个编码“可能”都是正确的。

这个getEncode()方法将返回设置的编码(读取JavaDoc)小溪。它不会猜到你的编码。

有些流告诉您使用了哪种编码来创建它们:XML、HTML。但不是任意字节流。

无论如何,如果有必要的话,你可以自己猜一个编码。每种语言对每个字符都有一个共同的频率。在英语中,字符经常出现,但却很少出现。在ISO-8859-1流中,通常没有0x00字符。但是一条UTF-16流有很多。

或者:你可以问用户。我已经看到了一些应用程序,它们以不同的编码方式呈现出文件的片段,并要求您选择“正确的”代码段。


查看完整回答
反对 回复 2019-06-17
  • 3 回答
  • 0 关注
  • 1148 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信