我正在尝试使用native2ascii ant任务,但似乎没有做任何事情。这是我的蚂蚁任务:
<target name="-pre-init">
<native2ascii src="src/com/bluecubs/xinco/messages" dest="src/com/bluecubs/xinco/messages/test"
includes="**/_*.properties"/>
<copy todir="src/com/bluecubs/xinco/messages">
<fileset dir="src/com/bluecubs/xinco/messages/test"/>
</copy>
<delete dir="src/com/bluecubs/xinco/messages/test" />
</target>
我做了复制部分以查看它是否是覆盖问题,但文件完全相同。
这是我在运行任务时得到的输出:
Converting 12 files from Z:\Netbeans\Xinco\2.01.xx\Xinco\src\com\bluecubs\xinco\messages to Z:\Netbeans\Xinco\2.01.xx\Xinco\src\com\bluecubs\xinco\messages\test
Copying 12 files to Z:\Netbeans\Xinco\2.01.xx\Xinco\src\com\bluecubs\xinco\messages
Deleting directory Z:\Netbeans\Xinco\2.01.xx\Xinco\src\com\bluecubs\xinco\messages\test
编辑:
其他信息: 操作系统:Windows 7(但答案应该适用于任何OD) 文件编码:使用此article获得的Western(ISO-8859-1)。
有什么想法吗?
答案 0 :(得分:2)
native2ascii
将áéí
等原生字符转换为转义的unicode序列。这意味着á
将是\u00e1
,é
- &gt; \u00e9
和í
- &gt; \u00ed
。运行native2ascii
后,您的文件将成为标准的ASCII文件,便于携带。
native2ascii
不会触及已转义的unicode表单中的字符。您的属性文件已经是转义的unicode格式,因此它不会更改任何内容。例如_XincoMessages_cz.properties
包含以下行:
general.accessrights=opr\u00E1vnen\u00ED k pr\u00EDstupu
它逃脱了unicode。非扩展的unicode形式是:
general.accessrights=oprávnení k prístupu
Wordpad与Netbans:当您使用Wordpad打开属性文件时,它会将其作为简单文本文件打开,并将\u00e1
显示为\u00e1
。它不会将其转换回á
。 Netbeans执行此转换,您会看到'á'字符。此外,当您保存文件时,它会将其作为\u00e1
(!)写回磁盘。要查看原始文件,请使用例如Total或Double Commander,它不进行任何转换。 (请注意,Netbeans仅针对属性文件执行此转换。)
如果您将á
字符添加到_XincoMessages_cz.properties
文件中,则在运行您的任务时,它将更改为\u00e1
。当然现在不要使用Netbeans进行编辑,简单的记事本就可以了。
在java中加载属性文件会将转义的unicode字符转换为实际的unicode字符。一个例子:
final Reader inStream = new FileReader("..../_XincoMessages_cz.properties");
final Properties properties = new Properties();
properties.load(inStream);
System.out.println(properties.getProperty("general.accessrights"));
打印:
oprávnení k prístupu
适当文件中的ASCII /转义unicode表单通常由java应用程序很好地处理。最后,我认为你的属性文件的当前格式是好的。
答案 1 :(得分:0)
它结束了一个观点问题。在原始编辑器(即Wordpad)中查看文件显示文件已由任务转换。从NetBeans中查看它们会显示相同的内容。