memorandums

日々の生活で問題解決したこと、知ってよかったことなどを自分が思い出すために記録しています。

XAMPPでShift_JIS統一

今までLinux環境で実験してきたので、Webアプリケーションを作るにしても、MySQLにせよ、Rubyにせよ、ある意味、標準的な使い方が多かった。

Webアプリケーション開発の授業では、サーバ・開発環境ともにWindows環境のみで実現する。とくれば、phpソースもMySQLphpmyadminShift_JISで統一したくなる。
php.iniの設定は、ネットで調べながら解決できたが、問題はMySQLphpmyadminだ。それでも、mysqlコマンドでcreate tableとinsertをした日本語データは問題なくphpで表示できた。となれば問題はphpmyadmin。明日も引き続き調査する。

この調査で1つ収穫が。

「Eclipse3ではじめるPHP5プログラミング入門(Link)
」という私も持っている書籍のネット情報にxampp環境におけるMySQLのiniファイルの補足説明があった。

my.iniは、xamppインストールディレクトリ\xampp\mysql\bin\my.cnfにあるとのこと。全くその通りで、ありました。これに文字コードを設定することができそう。

追記

my.cnfは関係なかった。「愛と苦悩の日記(XAMPP上のPHP+MySQL文字化け解決)(Link)」に従って設定したところ、Shift_JISで統一できることが確かめられた。ただ、SELECT前に必ず「$result = mysql_query("SET CHARACTER SET SJIS;");」を実行しなければならず。。。何とかならないものか。。。

以下、自分メモ。成功したPHPソースと実行結果。

PHPソース


";

$con = mysql_connect("localhost","root","");
$result = mysql_query("SET CHARACTER SET SJIS;");
$result = mysql_db_query("test","select name from test");

while($row = mysql_fetch_row($result)) {
foreach($row as $value) {
echo $value."
";
echo mb_substr($value,2,1);
}
}

mysql_close($con);

?>


実行結果


たかはし

最後に

データベースを作成するときに「照会順序」を「sjis_japanese_ci」にすることを忘れずに。