[제나플러스] Shift-JIS 문자에 따른 php연결 대처방안
본문
4. 文字化け対策
このような文字化けの対策として、
以下のような対策が考えられます。
4.1. 日本語文字列の文字コードにShift-JISを使わない
基本的にはShift-JIS以外の文字コードを用いれば、今回のような文字化けは起こらないので一番確実でしょう。しかし、仕事でプログラムを書いている人たちは諸々の事情からShift-JISを使用しなければならない状況があるかもしれません。
4.2. Magic Quote GPC機能をoffに設定する
設定方法:
これで、GETやPOSTで文字列を受信しても勝手に「\」がつかないので、文字化け自体は起こらなくなるのですが、データベース登録時には注意が必要です。なぜならばSQLでよく使用される「’」や「”」などの文字にも自動で 「\」が付加されなくなるので、意図的にaddslashesなどの処理が必要になってきます。
addslashesの使い方:
4.3. GETやPOSTで受信した文字列に「\」を取り除く処理を行う
この場合は、Magic Quote GPC機能をonの状態で、GETやPOSTで受信した文字列に対して、stripslashes などで逐一余分に付加される「\」を取り除く処理を行っていきます。
stripslashesの使い方:
5. 最後に
今回の文字化けは、私がPHPで複数のページに渡って変数をやり取りするプログラムを作っているときに見つけたものです。納品直前で見つけてしまって、 結構あせりました。まだ納品前でよかったー。PHPでプログラムをする方、GETやPOSTで日本語を扱う際は、気をつけましょう。
このような文字化けの対策として、
以下のような対策が考えられます。
4.1. 日本語文字列の文字コードにShift-JISを使わない
基本的にはShift-JIS以外の文字コードを用いれば、今回のような文字化けは起こらないので一番確実でしょう。しかし、仕事でプログラムを書いている人たちは諸々の事情からShift-JISを使用しなければならない状況があるかもしれません。
4.2. Magic Quote GPC機能をoffに設定する
設定方法:
php.ini(PHPの設定ファイル)の項目
magic_quotes_gpc = On
をOffに書き直す。
magic_quotes_gpc = On
をOffに書き直す。
これで、GETやPOSTで文字列を受信しても勝手に「\」がつかないので、文字化け自体は起こらなくなるのですが、データベース登録時には注意が必要です。なぜならばSQLでよく使用される「’」や「”」などの文字にも自動で 「\」が付加されなくなるので、意図的にaddslashesなどの処理が必要になってきます。
addslashesの使い方:
変数 = addslashes( "文字列" または変数 );
4.3. GETやPOSTで受信した文字列に「\」を取り除く処理を行う
この場合は、Magic Quote GPC機能をonの状態で、GETやPOSTで受信した文字列に対して、stripslashes などで逐一余分に付加される「\」を取り除く処理を行っていきます。
stripslashesの使い方:
変数 = stripslashes( "文字列" または変数 );
5. 最後に
今回の文字化けは、私がPHPで複数のページに渡って変数をやり取りするプログラムを作っているときに見つけたものです。納品直前で見つけてしまって、 結構あせりました。まだ納品前でよかったー。PHPでプログラムをする方、GETやPOSTで日本語を扱う際は、気をつけましょう。
추천0
관련링크
댓글목록 0
등록된 댓글이 없습니다.