2017-05-05 5 views
1

XSLTを使用してXMLをCSVに変換しています。 XSLTでの私の出力ラインは次のとおりです。XMLのポーランド文字がたくさんあるXSLTを使用したXMLからCSVへ - ポリッシュ文字の維持

<xsl:output method="text" encoding="UTF-8" />

、それが問題です。 XMLツールプラグインを使用してXMLをNotepad ++から変換すると、出力ファイル(保存されていない)にはポーランド文字が正しく表示され、エンコーディングをクリックするとUTF-8 without BOMと表示されます。私がCSV形式で保存すると、Excelの文字が表示されません。メモ帳++のファイルのエンコーディングをUTF-8 with BOMに変更すると、正しくExcelで動作します。

これはすべてNotepad ++の問題だと思っていましたが、XmlSpyで変換するとExcelのように出力ファイルも正しくありません。

UTF-8 BOM記号を(手ではなくXSLTからの)ファイルの先頭に追加することはできますか?しかし、それらを削除する方法はすべてわかりました。私の問題。私はこれで夢中になります。

私はXSLT 1.0 btwを使用しています。 XmlSpyの私のエンコーディングはデフォルトであり、UTF-8です。入力XMLのエンコーディングもUTF-8です。

+0

Excelなどに問題があります。メモ帳++のような小さなプロジェクトでも、ファイルを開くときにファイルのエンコーディングを正しく把握できる場合、アプリケーションに機能的に同等の機能を実装できないということはMicrosoftに恥ずかしいはずです。 –

答えて

2

あなたがXSLT 1.0を使っているので、あなたがXSLT 2.0を使用していた場合は、明示的...

<xsl:template match="/"> 
    <xsl:value-of select="'&#xFEFF;'"/> 
    <xsl:apply-templates/> 
</xsl:template> 

、あなただけxsl:outputbyte-order-mark="yes"を出力&#xFEFF;を使用することができますすることができます。

+1

これは機能します!私は ''でエスケープのためのさまざまなオプションを使って試しましたが、何も効果がありませんでした。ありがとう! – Shadov

関連する問題