« そろそろお風呂に入らないと | メイン | 2007年はじめの食事 »

2007年01月01日

IE で UTF-8 の含まれる XML が表示されなかったら

Simple FON Maps の XML を生成するときに、なぜか IE でエラーが出る場合がありました(日本語以外のマルチバイト文字が含まれる場合)。

テキストの内容に無効な文字が見つかりました。

IE で XML を表示しようとすると、このようなエラーが出ました。律儀なことに JavaScript 経由でもデータを読み込んでくれません。他のブラウザ Firefox, Opera では、何のエラーも出ずに読み込めたのですが…。

サポートページを調べてみると、出力データに言語仕様によって定義された有効な XML 文字範囲を超えた内容が含まれるようです。すなわち、制御文字などが混ざっているようです。

utf8::decode($str);
utf8::encode($str);

このように UTF-8 フラグを ON にしてから OFF にすれば解決しました。不要なバイナリを除去してるのだろうか…。そもそも、文字列を UTF-8 として扱うと決めているのであれば、フラグを ON にしておいた方がいいのかな。

とりあえず動くようになったからいいのですが、もう少し細かい部分を調べる必要がありそうです。

【関連記事】
Simple FON Maps を Google Earth に対応 (2006年12月31日)

【関連情報】
・PRB:下位文字が XML ドキュメントに含まれる場合、エラー メッセージ
 http://support.microsoft.com/kb/315580/ja

2007年01月01日 23:51 | Programming

トラックバック

コメント