出力エンコーディングを utf-8 に設定すると、出力ファイルで iso-8859-1 文字が utf-8 に変換されないのはなぜですか?
iso-8859-1 エンコーディングの xml 入力ファイルがあり、エンコーディングが宣言されています。utf-8で出力したいです。私の理解では、xslt ファイルで出力エンコーディングを設定すると、文字変換が管理されます。
私の理解は間違っていますか?そうでない場合、次の単純なテスト ケースで utf-8 宣言された出力ファイルに iso-8859-1 文字が出力されるのはなぜですか?
私の入力ファイルは次のようになります。
<?xml version="1.0" encoding="ISO-8859-1"?>
<data>ö</data>
私の変換は次のようになります。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:output encoding="UTF-8" />
<xsl:template match="/">
<result>
<xsl:value-of select="." />
</result>
</xsl:template>
</xsl:stylesheet>
コマンドラインから saxon9he を使用すると、結果は次のようになります。
<?xml version="1.0" encoding="UTF-8"?>
<result>ö</result>
私の結果ファイルの ö は、無効な utf-8 文字である BabelPad によると 0xF6 です。ö は変形の影響を受けていないようです。
助けてくれてありがとう!