2017-08-18 3 views
0

ラテン文字のUTF-8エンコーディングを表示しているオンラインで利用可能な多くのチャートは、私にとって多少混乱します。XSLT変換用XMLのeacuteの適切なUTF-8 16進表現

例えばeacuteの16進表現がUTF-8用c3a9です:

UTF-8(16進数)0xC3 0xA9(c3a9)

http://www.fileformat.info/info/unicode/char/c3a9/index.htm

だから私はそれはそれを作るだろう推測しています쎩それが16進数のXMLでreprentedされた場合は???この表現は、UTF-8のXML標準ですか?ソースシステムは、UTF-8と言っても「E9」として送信しています。 XMLSpyとNotepad ++は、とにかくそれがE9であることを示しています。

私のために霧を取り除くことはできますか?ありがとう。

答えて

1

XMLは、エンコードされたバイトシーケンスではなく、数値文字参照でユニコードコードポイントを使用します。 éはU + 00E9なので、システムは正しいです。

あなたの次の質問には、「é」の6文字がすべて表示されます。有効なUTF-8です。

+0

あなたは '' é ''を意味すると思います。 –

+0

@ michael.hor257k:ありがとう、ありがとう。 –

+0

XMLSpyがファイルを開いたときにE9がutf-8として有効でないと言う理由は何ですか? – johkar

1

この問題を少し混乱させるために、Unicodeには多くのアクセント付き文字の2つの表現があります:合成と分解。 E急性の場合、合成された表現は単一コードポイントU + 00E9(オクテットシーケンスxC3 xA9によってUTF-8で表される)である。分解された表現は、文字とアクセントを別々のコードポイント(U + 0065 U + 0301)として表します。 XPath 2.0のnormalize-unicode()関数を使用して、ある表現から別の表現に変換できます。通常、データは合成された形式で到着する可能性がありますが、すべての基底をカバーしたい場合は、等価性テストなどの操作を行う前に、構成形式に正規化する必要があります。

+0

返事をありがとう。これはXMLSpyがE9が有効なUTF-8ではないと言う理由ですか? – johkar

+0

いいえ、それはエンコーディングの問題です。あなたはXMLSpyに、ファイルが実際には他のエンコーディングにあるとき(または別のエンコーディングが混在しているとき)、UTF-8でエンコードされていると話しました。エンコーディングに関してあまりスマートではないエディタに文字をカットアンドペーストすることで簡単に達成できます。 –

関連する問題