解決済みの質問
サーバはさくらインターネットです。 レンタルサーバから専用サーバに移転したの...
サーバはさくらインターネットです。
レンタルサーバから専用サーバに移転したのですが、
専用サーバではphpMyAdminで日本語データの文字化けが起きます。
どなたか、原因分かりますでしょうか?
専用サーバのphpMyAdminからDB作成の際、下記の設定で行い、
MySQLの文字セット UTF-8 Unicode (utf8)
MySQLの接続照合順序 utf8_unicode_ci
DB の照合順序 utf8_unicode_ci
レコードをINSERTする際、下記のように文字コードを指定し、
$sql=mb_convert_encoding($sql,"EUC-JP","EUC-JP");
execute_sql($con, $sql);
実行しましたら、phpMyAdmin内で日本語データが文字化けしました。
しかし、サイト内で表示しているDBデータ(日本語)は文字化けしませんでした。
DB の照合順序をutf8以外(ujis_japanese_ciなど)として、
DBを作った場合、レコードをINSERTしたら、
サイト内DBデータもphpMyAdmin内データもどちらも日本語が文字化けします。
また、レンタルサーバのphpMyAdminからDBデータをエクスポートして、
専用サーバのphpMyAdminからインポートした場合、
読み込むDBデータファイルの文字コードをUTF-8にしなければ、
phpMyAdmin内で日本語データが文字化けしてしまいます。
ただ、UTF-8にしてインポートしてもphpMyAdmin内では文字化けしませんが、
サイト内で表示しているDBデータは文字化けします。
専用サーバ情報は下記の通りです。
【専用サーバ】
OS:CentOS 5
Apache 2.2.3
PHP5.1.6
DBサーバ:MySQL 5.0.77
アップしているファイルの文字コード:EUC
ドキュメントルート直下に設置の.htaccess内は下記の通りです。
php_value include_path "/●●/PEAR/"
php_flag log_errors 'On'
php_flag register_globals 'On'
php_value mbstring.language "Japanese"
php_value mbstring.internal_encoding "EUC-JP"
php_flag mbstring.encoding_translation On
php_value default_charset "EUC-JP"
php_value mbstring.http_input auto
php_value mbstring.http_output "EUC-JP"
php_value mbstring.substitute_character none
文字化けが起きないようにする方法をお分かりの方、何卒よろしくお願いいたします。
- 補足
- >hot_otanさん
UTF8のサーバかは分かりません。PHPファイルもテンプレファイルもEUCです。
一部ファイルでUTF8に変えてみましたが、DBのデータではない文字まで文字化けしてしまいました。
ドキュメントルート /home/▲▲▲/www
phpMyAdminのディレクトリ /home/phpmyadmin
となってます。phpMyAdminのディレクトリ内のファイルはsjisとなってます。
-
- 質問日時:
- 2010/3/31 23:29:44
-
- 解決日時:
- 2010/4/15 06:30:37
-
- 回答数:
- 1
-
- 閲覧数:
- 628
-
- ソーシャルブックマークへ投稿:
- Yahoo!ブックマークへ投稿
- はてなブックマークへ投稿
- (ソーシャルブックマークとは)
ベストアンサーに選ばれた回答
hot_otanさん
やってることがちょっとわかりにくいんですが、PHP、DBともにUTF8のサーバでPHPをEUCにしてるって事で良いんですかね?
専用サーバーなのでサーバー設定自体変えるとかもできますが、使い勝手のよい設定になってるものをわざわざ難しい設定にする必要は無いですよね。
内容や後々のことを考えたら、PHPファイルをKanjiTranslatorでutf8に一括置換し、metaタグ内のcharsetもutf8に置換して、PHP・DBともにUTF8で運用する方が良いと思いますよ。
よっぽど特殊な文字使ってない限り、UTF8に変換しても問題は起こらないと思います。phpMyAdminも文字化けしなくてすむと思います。
PS
>一部ファイルでUTF8に変えてみましたが、DBのデータではない文字まで文字化け
.htaccessでPHPはEUCに設定されていますので、そのままでは当然文字化けになってしまいます。
文字コードの問題は慣れてる人でも、知らないサーバーを使う度に苦労させられますので、内部の文字コードがわからないレベルとなると、ここで変更するのは正直難しいかもしれませんね。
- 違反報告
- 編集日時:2010/4/1 04:50:14
- 回答日時:2010/4/1 03:12:18
この質問は投票によってベストアンサーが選ばれました!
- この質問・回答は役に立ちましたか?
- 役に立った!
お役立ち度:
1人が役に立つと評価しています。
あなたにおすすめの解決済みの質問
- XAMPP、phpMyAdminのMySQLの文字セットを変更出来ません。 OSはWinXP XAMPP1.6.6 * Apache 2.2.8 + OpenSSL 0.9.8g * MySQL 5.0.51 * PHP 5.2.5 & PHP 4.4.8 (RC2) * phpMyAdmin 2.11.4 デフォルトで"MySQL の文字セット:UTF-8 U...
- 『 リナックスサーバー 』 PHPでmb_send_mailを使った時にかんして CENTOS5 PHP5を使います。 「ヘッダーのみ文字化けしてしまいます↓」 mb_language( "Japanese" ); mb_internal_encoding( "EUC-JP" ); $s...
- EUC-JPのデータをDBからcsvでエクスポート EUC-JPのデータをDBからcsvでエクスポートした際 エクセルでそのcsvを開くと文字化けが起きてしまいます。 何か回避する方法はありますでしょうか? DBからcsvでエクスポートする命令文...

