关于java native2ascii工具有些困惑。 tool in Java 6的定义:
转换带有本机编码字符(即
非拉丁1和非Unicode)转换为带有Unicode编码字符的字符。
那么为什么还要将属于拉丁1表的字符(例如é)转换为Unicode编码表示形式(\ u00e9)呢?
此处提供拉丁1(iso 8859-1)表,例如http://en.wikipedia.org/wiki/ISO/IEC_8859-1#Codepage_layout
这意味着我不能直接使用某些欧洲语言(例如法语)的属性文件。
为了澄清我的问题:
native2ascii不应转换latin1字符(按照其描述)。 é是有效的latin1字符。那么为什么要转换呢?
最佳答案
您可以使用带有法语和其他字符的属性文件。属性接受\uxxxx
序列。由于属性具有load(Reader reader)方法,因此可以直接使用国家字符。然后文件可以采用任何编码,您将提供可以正确解码文件的阅读器,例如new InputStreamReader(new FileInputStream(1.properities), Charset.forName("ISO-8859-1"));
我也同意native2ascii不应转换é
,因为它是合法的latin-1字符,并且文档说不转换latin-1字符。