プロが教える店舗&オフィスのセキュリティ対策術

質問があるのですがよろしくお願いします。

現在、CGIを使ったサイトを持っていおり、そのサイトのデータベースをテキスト形式のものからMySQLに移行したのですが、テキスト形式でデータを保存していた時は大丈夫だったのに、MySQLに保存するようにすると、「表示」のような文字が文字化けしてブラウザに表示されるようになってしまいました。PHPMyAdminで確認すると、文字化けしているところはしているので、データをMySQLに格納する過程で文字化けしているような気がします。

これにはどういった原因が考えられるでしょうか?どなたか解決方法が分かる方ご教授よろしくお願いします。

なお、perlからDBIを経由して、MySQLにアクセスしています。

A 回答 (2件)

有名な5c問題ですね。


「表」はshift-jisでは「95 5C」、「5C」は「\」の
ことなので、その後に続く文字がエスケープされて
しまいます。
これを根本的に回避するにはshift-jisを使わない
以外にありません。(mysqlで制御する際にeucなどを
使うのが一般的)

対処方法はいくつかありますので、「shift-jis 5c」
などのキーワードでサーチしてみるとよいでしょう
    • good
    • 0
この回答へのお礼

回答してくださった方ありがとうございました。
プレースホルダを利用することで無事解決しました。
ありがとうございます。

お礼日時:2006/08/29 09:25

MySQLのバージョンは?



バージョン4.1以降なら、MySQLの設定でクライアント、サーバそれぞれの文字コードを設定するようになっています。その設定は、文字化けしない指定になっていますか?

MySQL Command Line Clientを起動できるなら、起動後に「status」というコマンドを入力してみてください。
現在、有効になっている文字コード等が表示されます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!