我想知道下面的代码是否可以在Linux中工作。Linux中的WINDOWS-31J等价编码
InputStreamReader isr = new InputStreamReader(file.getInputStream(),"WINDOWS-31J");
如果不是好心指向我,我可以使用WINDOWS-31J
相应的Linux字符编码的方向。
在此先感谢您的任何帮助。
我想知道下面的代码是否可以在Linux中工作。Linux中的WINDOWS-31J等价编码
InputStreamReader isr = new InputStreamReader(file.getInputStream(),"WINDOWS-31J");
如果不是好心指向我,我可以使用WINDOWS-31J
相应的Linux字符编码的方向。
在此先感谢您的任何帮助。
是的,windows-31j
/MS932
附带Oracle版本的Java 7 for Solaris,Linux和Windows。完整列表见Supported Encodings。
据Oracle文档,它支持:
https://docs.oracle.com/javase/8/docs/technotes/guides/intl/encoding.doc.html
Canonical Name for java.nio API | Canonical Name for java.io API and java.lang API | Description
windows-31j MS932 Windows Japanese
所以,当你调用它:
InputStreamReader isr = new InputStreamReader(file.getInputStream(),"MS932");
它提到的字符集的扩展定义设置:lib/charsets.jar
。您可能必须将其包含在您的项目中。它位于jre \ lib \ charsets.jar下的JDK目录中。
您不必添加'charsets.jar'。它会自动包含在内。 – Andreas
你可能会实现你自己的InputStream(Reader)来完成解码。基于此表执行起来非常容易:http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP932.TXT – selbie
试试看看。您确定您正在阅读的文件是否实际上将用Windows-31J编码进行编码? – Random832