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つが混乱し、3つ目は正しく置き換えられます。

テキストのソースは常にUTF-8エンコードされたbuild.propertiesであり、ビルドファイルも使用UTF-8します。2人がこの問題を抱えている理由に違いはありません。

プレースホルダーをテキストに置き換える方法:

<?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

1 に答える 1

4

プロパティ ファイルは UTF-8 でエンコードしないでください。http://download.oracle.com/javase/6/docs/api/java/util/Properties.htmlからの引用:

入出力ストリームは、ISO 8859-1 文字エンコーディングでエンコードされます。このエンコーディングで直接表現できない文字は、Unicode エスケープを使用して記述できます。エスケープ シーケンスでは、単一の 'u' 文字のみが許可されます。native2ascii ツールを使用して、プロパティ ファイルを他の文字エンコーディングとの間で変換できます。

于 2011-08-11T11:39:13.647 に答える