自分なりに調べてみたのですが,わからないのでお尋ねいたします。
phpmyadminからmysqlに直接日本語を打ち込むと,ちゃんと日本語が表示されます(phpmyadmin内でデータを再度呼び出した時)。が,phpのプログラムからmysqlにデータをinsertし,phpmyadminでデータを参照すると日本語部分のみ文字化けします。
同じプログラムをアイルサーバで動かしていて,そこではうまくいっているのですが,ファーストサーバでうまくいきません。
ファーストサーバの文字コードはEUC-JPですが,phpもプログラムもEUCで書いています。メール送信部分のプログラムは,ちゃんと日本語が出ています。
日本語文字化けの場合に,チェックするべきところは,どういうところがありますでしょうか?。多分,phpというよりはMYSQL側の問題のような気がしないでもないのですが・・・。
No.2ベストアンサー
- 回答日時:
INSERT 前に以下のようにして "SET NAMES 文字コード" で MySQL に文字コードを指定してみてください。
mysql_query("SET NAMES EUC-JP");
phpMyAdmin は起動時に文字コードを指定しているのでphpMyAdminだと正常に処理されるのだとおもいます。
この回答への補足
とにかく簡単なコードで確かめてみようと,下記のようなコードを暫定的に作成して確かめてみました。
--------------
$name="やまだはなこ";
//データ登録
mysql_query("set names euc-jp");
$sql = "insert into TUI_usertest(k_name) values('$name')";
--------------
が,結果はやはりk_nameが化けています。
¤Ï¤Þ¤À¤Ê¤ª¤?¤Ã¤Á
このような化け方です。
mysql_query("set names euc-jp");
の使い方がおかしいでしょうか?。
mysql_query("set names ujis");
これで解決しました。
もう諦めて手作業にしようかと思いながらやっていた最後のトライ&エラーでした。
皆様,ありがとうございました。
No.3
- 回答日時:
phpmyadminのログイン時EUC-JPでログインしてないとか?
phpファイル保存時SJIS形式で保存されているとか?
ma2shinさん、ありがとうございます。
PHPファイルの保存はEUCになっています。
>phpmyadminのログイン時EUC-JPでログインしてないとか?
これがよくわからないのですが、ログインする時にEUC-JPを選ぶような入力ボックスはないのですが・・・何か私、カンチガイしているでしょうか?。
ちなみに、phpMyAdminを開いて、左フレームのプルダウンメニューが「データベース」という状態での右フレームの状態は、以下のようになっています。
MySQL の文字セット: UTF-8 Unicode (utf8)
MySQL 接続照合順序 utf8-unicode-ci
また、その右に表示されているphpMyAdminに関する情報は
phpMyAdmin - 2.9.0.2
言語 - Language 日本語japanese
です。
No.1
- 回答日時:
どちらかというとPHP側の問題のような気もします。
インサートする日本語文字列にmb_detect_encodingをかけて文字コードを調べてみてはいかがでしょう。
PHPMyAdminからインサートする分には問題ないということですが、念のため確認もかねて、PHPMyAdminの参照順序がLatinなどになっていないかも確認するとよいかもです。(EUCだとujisだったかと)
ありがとうございます。
mb_detect_encodingをかけてみましたが,EUC-JPでした。
あと,参照順序については,Latin1なんとやらになっていたので,この部分も,ujisに修正して実行してみましたが,結果は変わりませんでした。
phpもmysql自体も初心者に近いので,なにか基本的なことを見落としているのかもしれません・・・。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
POSTでもGETでも対応するには
-
FORMタグを使わずに、POSTする...
-
同じレス内に質問の キャッチボ...
-
3つ以上の論理積は利用可能なの...
-
.phpファイルが、表示されない
-
PHP4対応のサーバーではinclude...
-
PHPのif文でその処理を途中で抜...
-
フォントの色を変えるには?
-
zip圧縮の種類について
-
トランザクションが原因?DBに...
-
VB.NET 最下位のディレクトリ名...
-
.phpと.incファイルの違いはな...
-
PHPでFilename cannot be empty...
-
CSV出力にHTMLが入ってしまう
-
makefile でファイルをコピーす...
-
$_SESSION 有効期限をブラウザ...
-
CFileDialogの最初のディレクト...
-
FTPコマンドでディレクトリごと...
-
Subversionのリポジトリの削除
-
include先でのinclude元の変数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
= $argv[1];はどんな働きがあり...
-
smartyでホームページ上の画像...
-
さくらのレンタルサーバーでメ...
-
PHP3で作ったプログラムをPHP4...
-
さくらインターネットでImageMa...
-
photo.php?id=0001 このような...
-
eclipseのエラーの意味
-
掲示板を資料を参考にして開発...
-
同じレス内に質問の キャッチボ...
-
sqliteでのデータベースのlocal...
-
PHPを利用してtelnet用のプログ...
-
MySQLのベースに書かれたプログ...
-
PHP関数で呼んだまま返って...
-
PHPでのメール受信について
-
PHPからPerlにデータを渡して結...
-
MySQLへの吐き出し日本語が文字...
-
XML-RPCでsend()できない
-
CGI(Perl)でできてPHPではで...
-
PHPで2地点間の緯度経度の求め...
-
PHPプログラムの内部からPOSTす...
おすすめ情報