我有一个包含以下文本的 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>
然后在 .properties 文件中定义ORDER_NAME的值
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 文件从供应商目录复制到配置目录并替换ORDER_NAME令牌。但是,在部署项目并打开文件后,文本损坏为:
<xsl:variable name="orderName" select="'çµå客ç¥'"/>
我在 Windows 7 64 位、Eclipse Juno 32 位和 ANT 1.7.1 上运行它(Ant 版本无法升级)。我见过类似的问题,但没有任何令人满意的答案(或任何似乎适用于这种特定情况的问题)。谢谢。