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

締切り済みの質問

PHPとmysqlでの文字化けについて

現在PHPとMySQLを利用したwebシステムを作成しています。
しかし文字化けが発生して困っています。こちらの環境は
PHP5.1.4
MySQL5.1.11
phpMyAdmin - 2.8.0-rc1
レンタルサーバー(xrea)を使っています。
自分でいろいろと調べたところ文字のエンコードはujisに統一したほうがいいとのことまではわかりました。
show variables like "char%";
を実行したところ
character_set_client utf8
character_set_connection sjis
character_set_database ujis
character_set_filesystem binary
character_set_results utf8
character_set_server utf8
character_set_system utf8
このように表示されます。
PHPの方も
<?php
header('Content-Type:text/html; charset=EUC-JP');
?>

<?php
$str = mb_convert_encoding($str, "EUC-JP", "auto");
?>
を実行しても日本語の部分は???で表示されてしまいます。
いろいろと調べたのですが、さっぱり原因がわかりません。
よろしくお願いします。

投稿日時 - 2006-11-05 10:06:46

QNo.2518876

すぐに回答ほしいです

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

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

回答(1)

ANo.1

私のイントラネットの環境では、character_set_client, character_set_connection, character_set_results の値をコマンドラインクライアントから調べると sjis、クエリーブラウザーで調べるとutf8 になっており、どちらも日本が表示できますが、PHPで調べるとそれらが latin1 となっており、そのままでは日本語の部分は ??? となります。
これを防ぐために、データベースからクエリを行う前にサーバにキャラクターセットを変更するSQL文を送っています。

質問者さんの環境でも同様の手法で解決できそうな気がします。

投稿日時 - 2006-11-11 23:05:51

あなたにオススメの質問