我试图使用native2ascii蚂蚁任务,但似乎没有做任何事情。这是我的第一个任务:
<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:NetbeansXinco2.01.xxXincosrccombluecubsxincomessages to Z:NetbeansXinco2.01.xxXincosrccombluecubsxincomessagestest
Copying 12 files to Z:NetbeansXinco2.01.xxXincosrccombluecubsxincomessages
Deleting directory Z:NetbeansXinco2.01.xxXincosrccombluecubsxincomessagestest
编辑:
附加信息:操作系统:Windows 7(但答案应该适用于任何OD)文件编码:本文获得的Western (ISO-8859-1)。
文件位置
任何想法?
native2ascii
将本地字符(如áéí
)转换为转义的unicode序列。这意味着á
将是u00e1
, é
-> u00e9
和í
-> u00ed
。运行native2ascii
后,你的文件将是标准的ASCII文件,更便于移植。
native2ascii
不会触及已经以转义unicode形式存在的字符。您的属性文件已经是转义的unicode形式,所以它不会改变任何东西。例如,_XincoMessages_cz.properties
包含这一行:
general.accessrights=opru00E1vnenu00ED k pru00EDstupu
转义unicode。非转义的unicode格式如下:
general.accessrights=oprávnení k prístupu
写字板vs. Netbans:当你用写字板打开属性文件时,它会打开一个简单的文本文件,并显示u00e1
为u00e1
。它不会将其转换回á
。Netbeans做了这个转换,你会看到' u00e1
(!)写回磁盘。要查看原始文件,例如使用Total或Double Commander,它们不做任何转换。(注意,Netbeans只对属性文件进行这种转换。)
如果你把一个á
字符放到你的_XincoMessages_cz.properties
文件中,如果你运行你的ant任务,它将被更改为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
java应用程序通常可以很好地处理属性文件中的ASCII/转义unicode格式。最后,我认为你的属性文件在目前的格式下是好的。
这是一个视图问题。在原始编辑器(即写字板)中查看文件显示,这些文件已经被任务转换。从NetBeans查看它们显示它们是相同的。