2011-10-11 79 views
2

假设我有一个属性如何将属性值从UTF8转换到ASCII蚂蚁

${test}=íñü 

在蚂蚁,有没有这个属性值转换为为\ uXXXX的方法?

我知道Ant可以使用native2ascii转换文件。

属性值如何?

更新:我之所以问这个问题,是因为我想运行在蚂蚁一个bat文件,bat文件的路径中包含一些非ASCII字符:

${test}=íñü 
<target name="help"> 
    <exec executable="cmd"> 
     <arg value="/c"/> 
     <arg value="${test}.bat"/> 
     <arg value="-p"/> 
    </exec> 
</target> 

的错误是,系统无法找到路径。我认为它涉及如何编码路径。但是,从UTF8到ASCII的路径无法解决问题

回答

1

使用loadresource taskencoding filter

这个例子从test设置属性test2

<property name="test" value="íñü" /> 
<loadresource property="test2"> 
    <string value="${test}" /> 
    <filterchain> 
    <escapeunicode/> 
    </filterchain> 
</loadresource> 
<echo encoding="utf8" message="'${test}' maps to '${test2}'" /> 

结果:

[echo] 'íñü' maps to '\u00ed\u00f1\u00fc' 

loadresource任务需要的Ant 1.7或更高版本。

+0

太好了。非常感谢。有用。我问这个问题的原因是因为我有另一个问题。但似乎这最终并不能帮助我解决其他问题。请参阅我的更新后的文章 – performanceuser

+0

我现在没有一台windows计算机,现在可以进行实验。你能从一个简单的.bat文件得到相同的工作吗?这可能是因为Java file.encoding与操作系统的不匹配 - 也许windows期待着CP-1252? –

+0

您是否想要从cmd运行.bat?它的工作原理,但cmd无法显示文件名 – performanceuser