レンタルサーバーでphpmyadminの文字化け
レンタルサーバーでMYSQLとPHPを使用したいのですが、PHPからINSERTした文字が、phpmyadminの画面だけで文字化けしてしまいます。
MySQLの文字コード設定は UTF-8 Unicode (utf8) で、照会順序も utf8_unicode_ci です。
INSERTする文字もINSERT直前に文字コードを変更し、確認したところutf8になっています。
コードは以下のとおり。
<?php
$sql = mb_convert_encoding("$info","UTF-8");
$mojicode = mb_detect_encoding($info,mb_list_encodings());
print "$info の文字コードは $mojicode です。";
?>
PHPでMySQLからデータをSELECTで表示させた際は、文字化けせずに表示されます。
表示させるサイトの文字コードはutf-8です。
表示させる前に文字コードを変換させています。
スクリプトは以下のとおり。
<?php
//文字コード
$enc_disp = "utf-8";
$enc_db = "utf-8";
//データの文字コードを変換する関数
function cnv_enc($string, $to, $from) {
//文字コードを変換する
$det_enc = mb_detect_encoding($string, $from . "," . $to);
if ($det_enc and $det_enc != $to) {
return mb_convert_encoding($string, $to, $det_enc);
}
else {
return $string;
}
}
//データベースに接続
$conn=mysql_connect($sv, $user, $pass) or die("接続エラー");
mysql_select_db($dbname) or die ("接続エラー");
//データを取り出す
//取りだすレコードの開始位置
$st=0;
//取りだす最大レコード数
$lim=5;
$sql = "SELECT number,date,info FROM info ORDER BY date DESC LIMIT $st,$lim;";
$res = mysql_query($sql, $conn) or die ("データ抽出エラー");
//mysql_query()関数でデータを取り出すSQLを実行する
//取り出したデータを表示する
echo "<table border=\"0\" id=table>";
while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) {
echo"<tr>";
echo"<td colspan='2'>".' ・ '.$row["date"].' / '.cnv_enc($row["info"], $enc_disp, $enc_db)."</td>";
echo"</tr>";
}
echo "</table>";
?>
なお、表示する際、文字コードを変更する前にデータの文字コードを調べたところ、ASCIIとなっていました。
phpmyadminに入った際にASCIIになったのでしょうか?
解決策がわからず困っています。
どなたか解決策を教えていただけないでしょうか。
よろしくおねがいします。