次のテキストを含む XSL ファイルがあります。
<xsl:variable name="orderName" select="'@ORDER_NAME@'"/>
XSL ファイルの先頭では、エンコーディングが UTF-8 に設定されています。
<?xml version="1.0" encoding="UTF-8"?>
また、Eclipse でファイルのプロパティを確認すると、テキスト ファイルのエンコーディングは次のように表示されます。 デフォルト (コンテンツ タイプから決定: UTF-8)
次に、ANT フィルター セット ファイルがあります。
<project name="filterset" basedir=".">
<property name="conn" value="TEST"/>
<filterset id="conn_props">
<filter token="ORDER_NAME" value="${ORDER_NAME}"/>
</filterset>
</project>
次に、 ORDER_NAMEの値が.properties ファイルで定義されます。
ORDER_NAME=电子客票
以下は、デプロイのために実行される ANT deploy.xml からの抜粋です。
<copy todir="${working.dir}/config" failonerror="false" overwrite="true" encoding="UTF-8">
<fileset dir="${supplier.dir}">
<include name="Supplier/**/*.xsl"/>
<include name="Supplier/**/*.xml"/>
</fileset>
<filterset refid="conn_props"/>
</copy>
これにより、XSL ファイルがSupplierディレクトリからconfigディレクトリにコピーされ、 ORDER_NAMEトークンが置き換えられます。ただし、プロジェクトをデプロイしてファイルを開くと、テキストが次のように破損しています。
<xsl:variable name="orderName" select="'çµå客ç¥'"/>
これを Windows 7 64 ビット、ANT 1.7.1 を搭載した Eclipse Juno 32 ビットで実行しています (Ant バージョンはアップグレードできません)。同様の質問を見たことがありますが、満足のいく回答 (またはこの特定のシナリオに当てはまると思われるもの) はありません。ありがとう。