- PR -

MySQLの文字化けについて

1
投稿者投稿内容
つる
ベテラン
会議室デビュー日: 2004/06/02
投稿数: 81
投稿日時: 2004-12-06 11:13
お世話になります。php-4.3.4 と mysql4.0.21-nt で開発をしようとしています。
PHPからinsert into でmysqlにデータを登録したのですが、”表明"等の文字が化けてしまいます。
で、色々と調べた結果、iniを変えるのは乗っていたのですが、スクリプト側で制御したいのです。
例えば、mb_convert_encoding("表明","EUC-JP","SJIS");等としてです。
ちなみに、mb_convert_encodingは試しましたが文字化けのままです。
スクリプトはSJIS(i-mode用サイトを作るため)で、mysqlはujisです。
レンタルサーバーを借りておられる方は、恐らくこういう局面に遭遇されると思うのですが、
皆様はどうやっていらっしゃるのか、教えてください。お願いします。

php.ini の default_charset (何も指定していません no value)
my.ini [mysqld] default-character-set=ujis
となっています。
コブラ
ぬし
会議室デビュー日: 2003/07/18
投稿数: 1038
お住まい・勤務地: 神奈川
投稿日時: 2004-12-06 12:18
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=17095&forum=26
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2004-12-07 00:09
引用:
”表明"等の文字が化けてしまいます。

これはphpMyAdminか何かで確認してるのでしょうかね。また、どう化けるのかも重要です。

$クエリ = "INSERT INTO テーブル名(カラム名) VALUES('".mb_convert_encoding("表明","EUC-JP","SJIS")."')";
として、うちではちゃんと「表明」が入りましたよ。単に"表明"を入れた場合は「楓セ」となりました
(これはEUC-JPに存在しない値がわたって無理やりsjisで読んだような感じに思えます)

要点としては、phpファイルが本当にSJISか、ブラウザからはSJISで送信されているか、BDの内容をEUC-JPで見ているのか、などですかね。
つる
ベテラン
会議室デビュー日: 2004/06/02
投稿数: 81
投稿日時: 2004-12-07 08:41
コブラ様・べる様ありがとうございます。
コブラ様に教えて頂いたスレは、既に確認済だったのですが、どうも上手くいかず
投稿させて頂きました。
が、確かに、<META の部分はちゃんとしてなかったので、処理後表示は上手いこといきました。ありがとうございます。

べる様
phpMyAdminでなく、DOS窓でやってます。
今日初めてphpMyAdminでテーブルの中身を見れることを知りました。
で、phpMyAdminでは正常に”表明”と表示されるのに、DOS窓では”ノフスタ”と表示され・・

> DBの内容をEUC-JPで見ているのか。

納得できました。ありがとうございます。
1

スキルアップ/キャリアアップ(JOB@IT)