phpMyAdmin で EUC-JP のデータが文字化けする場合の対応方法


[初回公開] 2009年01月30日

データベースの MySQL をブラウザで操作することができる phpMyAdmin は利用する文字コードを選択することで日本語など全角文字にも対応が可能だが、文字コードが EUC-JP の時に文字化けして利用できない場合の対応方法について紹介する。

phpMyAdmin で EUC-JP のデータが文字化けする場合の対応方法

1.phpMyAdmin が EUC-JP で文字化けする様子

phpMyAdmin が EUC-JP で文字化けする様子としては、下図のように MySQL に登録されている全角文字が文字化けしてしまう。
この状態の時はまだ MySQL 内のデータは正常で phpMyAdmin の表示側だけの問題だが、文字化けした状態で phpMyAdmin から値を変更してしまうとデータベースの値も文字化けした状態で保存されてしまう。

phpMyAdmin が EUC-JP で文字化けする様子


2.EUC-JP とは

EUC-JP(Extended UNIX Code Packed Format for Japanese)とは、UNIX OS で全角文字である日本語が定められた文字の規格である。

ASCIIとJIS X 0208 の文字集合を配置したもので、半角カナ (JIS X 0201) と JIS 補助漢字 (JIS X 0212) も含むんでいる。
2000 年初頭では Windows OS では SJIS、UNIX OS では EUC-JP で変換することが多かったが、名前の通り日本語しか利用できないため中国語や韓国語は文字化けしていた。

最近ではどの言語でも対応できる UTF-8 が一般的に利用されており、データベースの言語設定も UTF-8 とすることが多い。

3.phpMyAdmin が EUC-JP で文字化けする理由

phpMyAdmin が EUC-JP で文字化けする理由としては、phpMyAdmin の各文字コードを取り扱うライブラリが正常に動作しない点が挙げられる。

4.phpMyAdmin で EUC-JP のデータが文字化けする場合の対応方法

phpMyAdmin で EUC-JP のデータが文字化けする場合の対応方法としては、文字コードを取り扱うファイルの読み込みを強制的に中止させることである。

phpMyAdmin を設置しているディレクトリ内の「libraries」にある database_interface.lib.php の 848 行目から 910 行目あたりにある下記の行をコメント化して読み込まないする。
尚、今回利用している phpMyAdmin は「phpMyAdmin-2.11.9.4-all-languages.zip」を利用しており、バージョンによってファイル構成や記載されている行数は異なっていることある。

if (PMA_MYSQL_INT_VERSION >= 40100) {
<略>
} else {
require_once ‘./libraries/charset_conversion.lib.php’;
}



charset_conversion.lib.php を読み込まないようにした後は、phpMyAdmin にブラウザでアクセスして文字コードを下図のように 「Japanese(euc)」を選択してログインする。

phpMyAdmin で言語を選択する様子

次に日本語の全角文字があるテーブルを参照すると、文字化けが解消されているのが確認できる。

phpMyAdmin で EUC-JP で文字化けが解消した様子

関連記事

コメントを残す