Native2Ascii任务无法正常工作

时间:2011-09-15 17:40:56

标签: ant ascii

我正在尝试使用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)。

Files location

有什么想法吗?

2 个答案:

答案 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中查看它们会显示相同的内容。