2011-08-11 44 views
0

我有一个使用build.properties文件的ant构建脚本。在那里,我有这样的事情:特性文件中的特殊字符编码问题

release_type=debug 
version_code=1 
version_name=1.0.0 
logo_text=This is German: special chars like ä or ö 

我的问题是,现在,我使用logo_text在一个XML文件来替换占位符,其结果是在3 2建立垃圾,如:

<string name="logo_text">"This is German: special chars like ää or ü."</string> 

我有3个构建目标(每个使用他们自己的属性文件),并且它总是相同的2弄乱了,第三个被正确替换。

文本的来源始终是build.properties,编码为UTF-8,构建文件也使用UTF-8。为什么两个人都有这个问题,我找不到任何区别。

如何我替换文本占位符:

<?xml version="1.0" encoding="UTF-8"?> 
<project name="branding-builds"> 
    <!-- code snipped --> 
    <copy todir="./${short_title}"> 
     <fileset dir="./brandings/${short_title}"> 
      <exclude name="**/*.png"/> 
      <exclude name="**/*.java"/> 
     </fileset> 
     <filterset> 
      <filter token="LOGO_TEXT" value="${logo_text}" /> 
     </filterset> 
    </copy> 
    <!-- code snipped --> 
</project> 

信息:重写特殊字符以确保复制粘贴&没搞砸了也没解决问题。

回答

4

属性文件不应该是UTF-8编码的。引用自http://download.oracle.com/javase/6/docs/api/java/util/Properties.html

输入/输出流以ISO 8859-1字符编码进行编码。 无法直接用此编码表示的字符可以是使用Unicode转义写入的 ;在转义序列中只允许一个'u'字符 。 native2ascii工具可用于将 属性文件转换为其他字符编码或从其他字符编码转换而来。

+0

谢谢,用ISO 8859-1编码保存属性解决了它。我只是不明白他们为什么不支持UTF-8。谢谢! – WarrenFaith