2009-08-11 6 views
5

私たちは、アプリケーションによって、ユーザが入力したテキスト文字列をWebフォームに入力し、XML形式でパッケージ化します。ちょっとしたことを混乱させるだけで、XMLはOutlook電子メールメッセージの本文として送信されます。XMLのUTF-8またはISO-8859-1

ユーザーはWebフォーム(通常はWord)に何かを貼り付けることができるため、テキスト文字列には、開いている二重引用符や閉じた二重引用符などのASCII以外の文字(7ビット)を使用できます。

文字列は電子メールでそのまま送信されていますが、Microsoft XMLパーサーを使用すると、XMLに無効な文字が含まれていると(非常に正しい)文句を言います。

簡単な解決方法は、ヘッダにencoding = "iso-8859-1"を入れることです。しかし、すべてのXML文書がUTF-8でエンコードされていれば、より調和のとれた世界の方が良いと述べる記事を読んだので、最初は真のUTF-8形式でXMLファイルをエンコードするほうがよいのだろうか? ?

しかし、XML文書が電子メールメッセージの本文を介して実際に転送されているので、問題は起こるでしょうか? UTF-8は可変バイト長のエンコードシステムであることを理解しています。私は、7ビットのASCIIとエスケープ文字を使って、 "データがあります"ということを示しています。

もう1つのオプションは、UTF-8に設定しますが、非ASCII文字を& #nnnに置き換えることです。フォーマット。

この複雑な領域に関するアドバイスは高く評価されています。

Cheers、Rob。

+0

実際には、&#を使用するという考えは良いことではありません。ドキュメントが正しく開かれ、IEでは正しく表示されません。開閉記号はブロックとして表示されます。 –

+0

"ブロック"は、使用されているフォントに文字を表示するためのグリフがないことを示します。 – andynormancx

+0

ISO 8859-1には「スマートな」引用符はありません。だから、これらのスマートな引用符を表すバイトは、ランダムな他のISO-8859-1文字として終わるでしょう。 Ã-quoted textâ。 UTF-8は安全です。 – MSalters

答えて

6

可能であれば、私はおそらくUTF-8を使用しようとしています。それはもっと多くのことをカバーし、ISO-8859-1よりも柔軟性があります。東ヨーロッパ人のキャラクターはすでに(JiřiなどをISO-8859-1に書いてみてください - それは悲惨に失敗します)。

あなたが実際に変更を試みたいのであれば(私は拍手!)、UTF-8に行き、本当にUTF-8を動作させることができない場合は、ISO-8859-1に戻ってください。

MARCここ

7

外英語のみのランドから{1}私はUTF-8はどこにでも正常に動作し、多くの、多くの年のためになるよう行っていることを確認することができます。 MTAが、第8ビットを取り除いて(実際には問題を解決するのではなく症状を修正していたQPのような "発明"につながる)電子メールを壊してしまって以来、覚えておいて苦労しています。 UTF-8はすぐに人気を得て、iso-8859-1を置き換えましたが、90年代半ばにはこれが最も確実に起こりました。私は切り替えたときは覚えていませんが、少なくとも2000年以前であったと思います。

iso-8859-1といえば、ユーザーからの可能なすべての入力をカバーすることはできません。言語によっては、他のiso-8859が必要になることもあります(たとえば、フィンランド語、ウェールズ語など)。8859ファミリは中国語などの言語をサポートしていません。一方、UTF-8はすべてをカバーする必要がありますので、私はを強くにすることをお勧めしますiso-8859-1。

{1} これは、UTF-8を完全にサポートしていないプログラムがあれこれと考えられ、ここでは使用されない傾向があるため、私の経験に偏っているかもしれません。