ログイン



Tags » ‘UTF-16’

PHPのデフォルトエンコーディングがUTF-8に

4月 3rd, 2010 by

PHP、デフォルトエンコーディングをUTF-8へ (default_charset)

しかし、変化は確実に訪れている。Mind the encodings!において「default_charset」がiso-8859-1 からUTF-8へ変更されたことが紹介されている。ブラウザはサーバからのデータにエンコーディングの指定がなかった場合、これまではISO- 8859-1をデフォルトエンコーディングとしていた。逆にPHPがブラウザからデータを受け取る場合もISO-8859-1をデフォルトエンコーディングとしてきた。今回、この部分のデフォルトがUTF-8に変更された。

わかりやすいところでは、コメントアウトされているがphp.iniの「default_charset = “iso-8859-1″」がそれに該当する。62101のコミットで同設定が「default_charset = “UTF-8″」と変更された。なお設定自身はコメントアウトされており、より正確には、「default_charset」が設定されていない場合のデフォルトエンコーディングがISO-8859-1からUTF-8に変更されたということになる。これまでエンコーディングの指定がなかった場合ISO- 8859-1として処理されてきたクライアントから送られてくるデータはデータはUTF-8として処理されることになる。

default_encodingがphp.iniで指定されなかった場合の、デフォルトエンコーディングがUTF-8になったそうだ。日本語圏だと、古いWebサイトには、EUC-jpやShift-JISが使われている場合もあるが、今時のWebサイトには基本的にUTF-8が使われている。日本語を2バイト文字として表すShift-JISやEUC-jpと比べて、日本語を3倍と文字で表すUTF-8は、データ量が大きくなってしまうというデメリットはある。だが、今となっては、大した問題ではない。多言語対応できるというメリットを考えると、UTF-8以外でWebサイトを作る合理的な理由はないだろう。

PHP6の文字コード実装、UTF-3に決定

4月 3rd, 2010 by

PHP6の文字コード実装、UTF-3に決定

その名もUTF-3。仕様は以下のとおりです。

* わずか3bitで表現可能
* テキストで表現する時には、アルファベットの’R’,’A’,’I’,’N’,’F’,’U’,’C’,’K’を使用

使用決定の日に雨が降っていたのが決定打となった模様です。

エイプリルネタでこんな記事が書かれていました。UTF-16化がキャンセルになったPHP6ですが、開発は再スタートを切れたのでしょうか?50%を超えるWebサイトがUTF-8で記述されている現状を考えれば、UTF-8を採択する可能性はあっても、再びUTF-16で開発を進める可能性はなさそうです。次期バージョンの文字コードがどうなるかはともかく、今後もPHPの開発が継続されることを願います。