为什么JSF属性文件在Eclipse中不接受非ASCII字符?
我想知道,为什么JSF属性文件在Eclipse中不接受非ASCII字符 我有一些名为“messages.properties”的属性文件,我必须为非ASCII字符使用unicode转义字符,例如:为什么JSF属性文件在Eclipse中不接受非ASCII字符?,eclipse,jsf,utf-8,properties-file,Eclipse,Jsf,Utf 8,Properties File,我想知道,为什么JSF属性文件在Eclipse中不接受非ASCII字符 我有一些名为“messages.properties”的属性文件,我必须为非ASCII字符使用unicode转义字符,例如: title=\u01af\u0020\u0a3f0 header=\u0ff0\u0020\u0ab1 这意味着客户无法使用常规文本编辑器编辑这些属性文件 有什么解决办法吗?这源于使用ISO-8859-1的事实 load(InputStream)/store(OutputStream,String)
title=\u01af\u0020\u0a3f0
header=\u0ff0\u0020\u0ab1
这意味着客户无法使用常规文本编辑器编辑这些属性文件
有什么解决办法吗?这源于使用ISO-8859-1的事实 load(InputStream)/store(OutputStream,String)方法与load(Reader)/store(Writer,String)对的工作方式相同,只是输入/输出流采用ISO 8859-1字符编码。在这种编码中不能直接表示的字符可以使用Unicode转义码写入;转义序列中只允许一个“u”字符。native2ascii工具可用于在其他字符编码之间转换属性文件 这是一个长期存在的问题。我已经用struts解决了这个问题,实现了进行编码转换的自定义标记,但这通常是一个难题 Java6引入了
Properties.load(Writer)
,它可以与UTF-8配合使用,但它似乎还没有被广泛采用
我建议使用来转换unicode符号
对于最终用户来说,如果他们要编辑属性文件(听起来很奇怪),那么您可以让他们使用自己喜欢的任何字符编写,然后使用native2acii(或其包装器)转换文件。自从Eclipse4.2(Juno,2012)以来,这不再是必需的。当您使用内置属性文件编辑器时,Eclipse将透明地处理这个问题。它将显示并接受UTF-8中的值,但它将在封面下以静默方式转换为
\uxxx
格式。值得注意的是,这与Git插件(例如,合并过程中删除的旧行)相结合会产生一些奇怪的副作用,最好在拉/推之前关闭所有属性文件
如果您不在Eclipse 4 .x,请考虑使用<代码> > Nase2ASCII < /C>工具在JDK安装目录的<代码> /bin <代码>文件夹中,将UTF-8属性文件转换为ASCII属性文件,如
中所描述的。 您可以保留“原始”属性文件(例如,为它们提供一个.utf8
扩展名),并使用批处理/shell文件将其转换为以下格式:
cd c:\path\to\properties\files
c:\path\to\jdk\bin\native2ascii.exe -encoding UTF-8 text_cs.properties.utf8 text_cs.properties
c:\path\to\jdk\bin\native2ascii.exe -encoding UTF-8 text_ja.properties.utf8 text_ja.properties
c:\path\to\jdk\bin\native2ascii.exe -encoding UTF-8 text_zh.properties.utf8 text_zh.properties
# You can add more properties files here.
cd c:\path\to\properties\files
c:\path\to\jdk\bin\native2ascii.exe-编码UTF-8 text\u cs.properties.utf8 text\u cs.properties
c:\path\to\jdk\bin\native2ascii.exe-编码UTF-8 text_ja.properties.utf8 text_ja.properties
c:\path\to\jdk\bin\native2ascii.exe-编码UTF-8 text_zh.properties.utf8 text_zh.properties
#您可以在此处添加更多属性文件。
这样,您只需编辑.utf8
文件并运行批处理/shell脚本一次,即可将本机字符转换为\uxxx
。另见
另见: