最近、XMLに興味を持っています。いろいろと面白い使い方が出来そうです。
さて、皆さん、XML を書く際の文字コードは何を使いますか?
UTF-8 が多いでしょうか。
UTF-8 は日本語に優しくないので、俺は最近は UTF-16 を使っています。
あるいは、Shift-JIS とか ISO-2022-JP なんてのが好きな方もいらっしゃるかも。
ただ、そういった日本語ローカルな文字コードは、海外のアプリでは受け付けられない可能性も低くないと思いますから、やはりここは Unicode ファミリーのいずれかにしておくのが良いのではないでしょうか。
が、Unicode なら何でもいいかというと、そういうわけでもありません。
実際、いろいろと相性があるものです。
UTF-8 しか受け付けないもの、BOM がついていると受け付けないもの、ついていないと受け付けないもの…
XML を使うことの大きな利点のひとつに、パーサが成熟しているという点があると思います。
XML よりも JSON や YAML の方がコンパクトだから優れているという主張も見受けられるのですが、JSON は JavaScript で使うことに特化したフォーマットなので、JavaScript との相性は XML 以上に良いのですが、それ以外には XML ほど汎用的ではありません(YAML はよく知らないのでコメントを控えます)。
汎用的なパーサが成熟しているために、XML を扱うアプリケーションの開発者は、XML を読み書きする泥臭いコードに頭を悩ませる必要がありません。
シリアライズされた形式のことを考えることなく、メモリ上での抽象表現(XML Information Set)だけを相手にすればよいのです。
だというのに。
日本語ローカルな文字コードならわからないでもないですが、世界に名だたる Unicode でさえ、BOM の有無なんていう些細なことで処理できないですって?
鼻で笑いたくなる馬鹿馬鹿しさです。
どうして、海外の Web サービスに読み込ませるのに、UTF-8 と UTF-16、それぞれで BOM ありとなしなんていう4通りを、この俺が試さなきゃならないんです?
そんなザマで、XML を活用しているなんて、よく言えたもんです。