名前、年齢などのユーザー情報が含まれているxmlファイルを解析していますが、ユーザーは世界中から来ており、xmlには別のchar-setが必要です。たとえば、「Sikl¢si」という名前のユーザーが存在します。私がUTF-8をエンコードするxmlを設定した場合、c#xmldocumentオブジェクトはxmlのロード時に例外をスローします。エンコーディングをiso-8859-9に変更しました。現在は動作しています。しかし、iso-8859-9でカバーされていない別の面白い文字があれば、もう問題になります。この問題の究極の解決策は何か。多国語ソリューション用のXmlエンコード
0
A
答えて
-1
大部分をカバーするUTF-32にしてください。 UTFの詳細についてはthisをご覧ください。
3
究極の解決策は、最初にファイルをエンコードするために使用されたエンコーディングを知ることです。 XMLファイルでは、XML宣言で使用しているエンコーディングを指定する必要があります(例:<?xml charset="UTF-8" ?>
)。そうでない場合、ドキュメントはUTF-8またはUTF-16でなければなりません(また、それらの違いは自動的に検出されます)。
XMLパーサは、XMLファイルの情報に基づいて透過的にエンコーディングを処理する必要があります。
構文解析されないドキュメントを受け取っている場合、最初の場所で問題が発生している可能性があります。あなたはそれらを拒否し、提出されたエンコーディングを修正するように指示する必要があります
(すべてのUnicodeエンコーディングは、あなたが必要とする可能性の高い文字だけでなく、膨大な数の文字を扱うことができます)問題は、ドキュメントがUTF-8ではなく、UTF -8は使用されている文字を処理できません)。
関連する問題
- 1. 多言語GUI - 国際化
いいえ、動作していません。 XmlDocumentはUTF-32を知りません。ルートレベルでエラーメッセージが表示されます。ルートレベルのデータが無効です。 Line 1、position 40 – londondev
UTF-32は可能なすべての文字をカバーしますが、UTF-16とUTF-8も同様です。 UTF-32が動作し、UTF-8が動作しない理由はありません。 – svick