- PR -

PHPでEUCJP-winを指定するデメリットについて

1
投稿者投稿内容
未記犬
会議室デビュー日: 2008/02/17
投稿数: 2
投稿日時: 2008-02-17 14:38
お世話になっております。

PHPではEUCJP-winやSJIS-winを指定することで機種依存文字を取り扱うことが
出来ますが、これらを設定することによるデメリットって何かありますでしょうか?

ちなみにPHPで作ったページへアクセスする可能性があるのはWindowsのInternetExplorer
と、携帯電話(とりあえずiモードのみ)だけです。

ご存知の方、教えていただけましたら幸いです。
宜しくお願いします。
OakBow
ベテラン
会議室デビュー日: 2007/09/15
投稿数: 51
投稿日時: 2008-02-17 15:17
PHPでは文字コードの取り扱いをきちんとしておかないと、文字化けなどの
文字コード特有の問題に悩まされやすい。
なので、できるだけ文字コードは比較的扱いやすいと思われるもので統一
しておいたほうが良い。
使用するDBによっても変わるけど、MySQLであればUTF-8が一番いいかな?

と思ってます。
EUCはともかくSJISはここでまず引っかかります。
機種依存文字を正常にDBに出し入れできるかの問題も、別途発生しそう
ではありますけれど。

フレームワーク、テンプレートエンジン、O/RマッパーやDB仮想化レイヤ
などを使用することになると思いますが、洋物が多いこの分野、マルチバイト
を意識した設定になっていないことが多く、文字コードによる問題が
度々発生します。
特にSJISが顕著で、きちんとエスケープされないなどのセキュリティ上の
問題にまで発展することもあるのでかなりめんどいです。
EUCだと大丈夫かどうかはよく知りません。エスケープにaddslasherとか
使ってるようなものだとどの文字コードでもダメでしょうけれど。


携帯電話相手の場合はSJISを使わざるを得ないので、そういう場合は出力
だけSJISにしたりします。
機種依存文字を扱いたいならUTF-8は使えないと思うので、それなりに茨の
道になりそうですけれど。
未記犬
会議室デビュー日: 2008/02/17
投稿数: 2
投稿日時: 2008-02-20 12:00
未記犬です。

ありがとうございました。
機種依存文字ですが、携帯電話の絵文字を入力させたいという要望もあり、
そうなるとSJIS又はSJIS-winで頑張らないといけなそうですね。
1

スキルアップ/キャリアアップ(JOB@IT)