みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

MySQL5.1の文字化け

多くの方が同様の質問をされていたのですが、一致する問題が見つけれなかったので、ご存じの方がおられたら教えて下さいm(_ _)m

(環境)
 PHP 5.2.8
ZendFramework 1.5.1 から Pdo Mysqlを使用
 文字コード:SJIS

 Mysql 5.1
 文字コード:EUC-JP

(質問内容)
携帯の絵文字データをSJISのバイナリでスクリプト中に埋め込むため、スクリプトの文字コードをSJISに統一したところ、文字化けが発生しました。

SET NAMES SJIS のSQLを発行することで表示は正しくできるようなったのですが、新たにレコードを追加しようとすると文字化けが発生します。

例)情報 → 情表

insertを行う前の文字コードをSJIS,SJIS-win,EUCと変えてみましたが、SJISもしくはSJIS-winの場合は上記の例のとおりとなり、EUCにすると完全な文字化けとなりました...

おそらく登録時にMYSQLがSJIS→UTF8→EUCに変換される時に正しく変換されていないものと思われるのですが、どなたか対処方法をご存じないでしょうか?

よろしくお願いします。

投稿日時 - 2009-05-04 12:02:01

QNo.4930143

すぐに回答ほしいです

質問者が選んだベストアンサー

>> どなたか対処方法をご存じないでしょうか?

多分 MySQLクライアント(DBドライバmysql)側の問題でしょう。
SET NAMES クエリー発行ではなく
mysql_set_charset()で文字コードを設定で設定してみてください

投稿日時 - 2009-05-04 17:28:16

お礼

mpx様

回答ありがとうございました。
mysql_set_charsetで検索してわかったのですが、SET NAMESはSQLインジェクションの恐れがあるので使わない方が良いのですね(汗

Zend Framework環境で mysql_set_charset 関数を使ってみたのですが、コネクションがないとのワーニングがでました...

一応 Zend_Db_Adapter_Pdo_MysqlクラスからgetConnection関数で得たものを第2引数に割り当ててみたのですが無理でした(T T

もし、申し訳ないですが、zend_frameworkあたりに関してもご存じでしたら教えて下さい。

投稿日時 - 2009-05-04 23:35:34

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問