[PHP-users 12231] Re: bomつきutf-8 ファイルでのheader によるリダイレクト

Osamu Shigematsu php-users@php.gr.jp
Fri, 13 Dec 2002 11:26:15 +0900


重松です。こんにちは。

> PHPだけでなくHTMLやXMLなどでのエンコーディング指定などでもです。

BOM, すなわち Byte Order Mark は、UTF-8 の場合、付加してもよいが
付加しなくてもよいわけで、付加するメリットを明確に自身が述べられず、
現実にデメリットに直面している現状で、それを付加することを棄却しない
根拠がわかりません。

以下は私見になりますので *流して* いただければと思いますが、
そもそも UTF-8 という符号化方式は、古い、というよりも、
どちらかというと ASCII な文字で事足りる方々の作成したソフトを、
如何に少ない手間で I18N (M17N) 対応とするか、
そういう命題に関する解であることは明白だと思っています。

BOM という ASCII に存在しないものを持ち込めば、
それに対して「対処/対応」しないといけなくなります。

ISO/IEC 10646 的に言えば、ZERO WIDTH NON-BREAKING SPACE な
処理が必要になるわけで、とにかく UTF-8 では付加する必然性が
きわめて低いと考えるので、付加しないのが吉と思います。

大部分の UTF-8 以前、もしくは、そんなの知りません的ソフトにおいて、
それは、ゴミでしかないので。

PHP 内部で処理するなら、たとえば、fopen() して読み込む場合とか、
先頭の 0xff x0fe もしくは、0xfe 0xff を読み捨てればいいわけですから、
それほど対処は難しくないと思います。BOM は必ず頭に来るので。
# ZERO WIDTH NON-BREAKING SPACE はどこに来てもいいので、
# なかには、そういうデータもあるかもしれませんが。;-)

-- 
Osamu Shigematsu <m5issige@mr.hitachi-medical.co.jp>