2008年01月06日
今後のPHPとUnicode

Web用開発言語のPHPを利用している人は世の中に数多くいますが、2007年でPHP4のサポートが基本的には終了しました。
これから新規にPHPを使用する場合はPHP5を使用することとなるのですが、その次のバージョンのPHP6はどのようになっていくのでしょうか?
下記に今後のPHPのバージョンとそれに関わるUnicodeについてちょっとだけ書いてみました。
最後のPHP4バージョンアップ
以前も書きましたが、PHPのもっとも利用されているバージョンだったPHP4のサポートが去年の暮で終了しました。今後は特別なことがない限りPHP4のバージョンアップはなくなるとのことですが、今年初めにPHP4の最後のバージョンアップPHP4.4.8が公開されました。(年越してるじゃん!)
そして、このPHP4のサポート終了に伴い、PHP4ではなくPHP5を使用していくことを推奨されています。
PHP5からPHP6へ
現在、PHP5のバージョンはPHP5.2.5が最新でリリースされているのですが、今年の1月にはPHP5.3がリリースされる予定です。
このPHP5系の次はPHP6がリリースされるのですが、そのPHP6ではUnicodeのサポートが追加される予定のようです。これらの情報については
2008年のPHP ―PHP5.3,そしてPHP6へ:技術評論社
の記事が参考になるかと思います。
UTF-8とUTF-16
ここで出てくるUnicodeのUTF-16ですが、現在一般的に使用されているUnicodeはUTF-8と何が違うのでしょうか?これについても
UTF-8とUTF16の違いは?
で解説されていますが、最初の方を見てみると「UCS」だと何やらよくわかりにくい言葉が並べてあります。しかし、下の方に
UTF-16の場合、2バイトで表現できる文字(0x0000~0xD7FF、0xE000~0xFFFF)はそのまま2バイトで表し、それ以降(0x00000000~0x0010FFFF)の文字は4バイトで表します。このため英数も日本語も全て2バイトで表現されます。しかし、UTF-8は英数は1バイトで表現し、日本語は3バイトで表現するようになっています。と書かれているのを読んでみると何となく分かることでしょう。
もう少し砕いていみるとUTF-8の場合、「a」などの半角文字は1バイトとして扱い、「あ」などの全角文字は3バイトとして扱います。(本当は2バイトで収めたいのですが、漢字を含むとあまりにも多いので3バイトとして扱われています)
これに対しUTF-16の場合は「a」は2バイト、「あ」も2バイトとして扱います。
これ以上の文字コードについて知りたい場合は「文字コード超研究」
何だかまとまりが無くなってしまいましたが、以上でおしまいです。(まとまりが無いのはいつものことか・・・)
Web系のプログラムを開発していると必ずと言っていいほど文字コードの部分で引っかかることがありますが、PHP6で少しでも楽になると嬉しいですね。(文字コードで引っかかるのはもしかして私だけ?)
Category is PHP.
<%PingExcerpt%>
<%PingBlogName%> at <%PingDateTime%>
本年も一つよろしくお願いします。
>文字コードで引っかかるのはもしかして私だけ?
いえいえ、そんなことはないと思いますよ。
EUC-JPだってSJISだって亜流がいろいろあるので(現にwindowsでSJISと言われているのは、"CP932"の事だし)、それによる弊害が色々あるのを、去年だけでもかなり経験しました。
いくつか私のブログにもエントリ書きましたし・・・。
これからサイト作る時はSJISやEUC-JPでは作らずにUTF-8で作る、というのは去年マイルールとして定めました(笑)
あけましておめでとうございます。
今年もどうぞよろしくお願いします。
> いえいえ、そんなことはないと思いますよ。
あ~良かった。
「文字コードで悩むなんてまだまだだね」
なんていわれちゃうかと思いました。(^_^;)
私も一時はEUC-JPで作るようにしていましたが
ここ最近はUTF-8ですね。これからはUTF-16に変わるのかな?