我有一个使用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>
信息:重写特殊字符以确保复制和粘贴没有搞砸没有解决问题。
答案 0 :(得分:4)
属性文件不应该是UTF-8编码的。引自http://download.oracle.com/javase/6/docs/api/java/util/Properties.html:
输入/输出流以ISO 8859-1字符编码进行编码。 无法在此编码中直接表示的字符可以是 使用Unicode转义编写;只允许一个'u'字符 在逃脱序列中。 native2ascii工具可用于转换 与其他字符编码有关的属性文件。