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

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

解決済みの質問

MySQLの文字化け

WindowsServerでPHPとMySQLで作成したプログラムを動かしています。
PHPからINSERTでMySQLに登録すると環境依存文字(「(株)・(有)など)が「?」になってしまいます。
PHPからSELECTでブラウザ上に表示させると文字化けはしていませんが、phpMyAdminで確認すると「?」になっています。

このデータベースの内容を他のサーバーに移すときに、phpMyAdminからエクスポートまたはmysqldumpすると「?」のままエクスポートして、他のサーバーでインポートしても当然「?」になってしまいます。

環境依存文字が文字化けしない、あるいは他のサーバーでも環境依存文字をそのまま移行できるようにはできないでしょうか。

よろしくお願いします。


PHPはEUC-JP、データベースはujisで作成しています。
INSERTの直前でSET NAMES UJISを実行しています。

投稿日時 - 2014-10-03 19:03:28

QNo.8777668

困ってます

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

mysqldumpのオプションに--default-character-set=ujisを指定するとどうですか?
もともとの作成データベースはeucjpmsのほうがいいようですが。

投稿日時 - 2014-10-06 11:55:20

お礼

ありがとうございます。
オプションを指定したらうまくいきました。
データベースのeucjpmsへの変更も検討してみます。

投稿日時 - 2014-10-07 14:19:30

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

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

回答(2)

ANo.1

とりあえず、環境依存文字を使うのが前提であれば、
想定する環境依存文字をstr_replaceで強制的に変換してしまうが
一番てっとりばやいです

投稿日時 - 2014-10-03 22:15:22

お礼

ありがとうございます。
参考にさせていただきます。

投稿日時 - 2014-10-07 14:16:45

あなたにオススメの質問