属性文件中特殊字符的编码问题



我有一个使用构建的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弄得一团糟,第三个被正确替换。

文本的来源总是一个构建。属性是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>

信息:重写特殊字符以确保copy&paste不会弄乱并不能解决问题。

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

输入/输出流采用ISO 8859-1字符编码进行编码。不能直接用这种编码表示的字符可以使用使用Unicode转义书写;只允许一个'u'字符在转义序列中。可以使用native2ascii工具进行转换属性文件与其他字符编码之间的转换

相关内容

  • 没有找到相关文章

最新更新