| mysql_real_escape_stringが文字化けする |
|
|
|
| 2009年 11月 18日(水曜日) 14:43 | |
|
携帯端末をサポートするとまだまだ抜け出せないShift-JIS。UTF-8のデータベースを読み書きする必要がある場合、共通コンポーネントのデータベース読み書きモジュールはUTF-8を使用(SET NAMES utf-8;)していると、mysql_real_escape_stringが文字化けする。 そこでPHP5.2.3から登場しているmysql_set_charset。クライアントの文字コードをShift_JISに換えてくれる。 mysql_set_charset('sjis');
ただし、このやり方はナンセンス。どうせこの後に、 $str_text = mb_convert_encoding($str_text, "UTF-8", "SJIS"); をしてしまえば、セキュリティ上の問題が生じる危険性が高いので、こうするべき。 $str_text = mb_convert_encoding($_POST['text'], "UTF-8", "SJIS"); じゃあ、この説明要らないじゃん・・・。
|