studio ASATA
status:

Tips

phpMyAdmin-3.3.3をEUC-JPで使う

以下の手順でログイン画面で、日本語utf-8、euc、sjisが選択可能になり、文字化けなくデータベースにアクセスできるようになる。

環境

Mac OS X10.4.11
phpMyAdmin-3.3.3-all-languages
PHP-5.3.2
MySQL-5.1.40

手順

(1) phpmyadmin/libraries/select_lang.lib.phpの編集

'ja-utf-8'     => array('ja|japanese', 'japanese-utf-8', 'ja', '日本語'),

	↓追加

'ja-utf-8'     => array('ja|japanese', 'japanese-utf-8', 'ja', '日本語(utf8)'),
'ja-euc'       => array('ja|japanese', 'japanese-euc', 'ja', '日本語(euc)'),
'ja-sjis'      => array('ja|japanese', 'japanese-sjis', 'ja', '日本語(sjis)'),

(2) langファイルを作る
phpmyadmin/lang/japanese-utf-8.inc.phpの冒頭を編集

$charset = 'utf-8';
  ↓
$charset = 'EUC-JP';

エンコード改行をEUC+LF、ファイル名japanese-euc.inc.phpで保存。
同様に$charset = 'shift_jis';にソースを変更後、エンコード改行をShift-JISにして japanese-sjis.inc.phpで保存。japanese-sjis.inc.phpは下のように全て置換える。

'表示'→'表\示'
'機能'→'機能\'

(3) phpmyadmin/libraries/database_interface.lib.phpの編集

function PMA_DBI_postConnect($link, $is_controluser = false)
{
    if (! defined('PMA_MYSQL_INT_VERSION')) {
        if (PMA_cacheExists('PMA_MYSQL_INT_VERSION', true)) {
            define('PMA_MYSQL_INT_VERSION', PMA_cacheGet('PMA_MYSQL_INT_VERSION', true));
            define('PMA_MYSQL_STR_VERSION', PMA_cacheGet('PMA_MYSQL_STR_VERSION', true));
        } else {
            $mysql_version = PMA_DBI_fetch_value(
                'SELECT VERSION()', 0, 0, $link, PMA_DBI_QUERY_STORE);
            if ($mysql_version) {
                $match = explode('.', $mysql_version);
                define('PMA_MYSQL_INT_VERSION',
                    (int) sprintf('%d%02d%02d', $match[0], $match[1],
                            intval($match[2])));
                define('PMA_MYSQL_STR_VERSION', $mysql_version);
                unset($mysql_version, $match);
            } else {
                define('PMA_MYSQL_INT_VERSION', 50015);
                define('PMA_MYSQL_STR_VERSION', '5.00.15');
            }
            PMA_cacheSet('PMA_MYSQL_INT_VERSION', PMA_MYSQL_INT_VERSION, true);
            PMA_cacheSet('PMA_MYSQL_STR_VERSION', PMA_MYSQL_STR_VERSION, true);
        }
    }
/*コメントアウト
    if (! empty($GLOBALS['collation_connection'])) {
    	PMA_DBI_query("SET CHARACTER SET 'utf8';", $link, PMA_DBI_QUERY_STORE);
        $mysql_charset = explode('_', $GLOBALS['collation_connection']);
        PMA_DBI_query("SET collation_connection = '" . PMA_sqlAddslashes($GLOBALS['collation_connection']) . "';", $link, PMA_DBI_QUERY_STORE);
    } else {
        PMA_DBI_query("SET NAMES 'utf8' COLLATE 'utf8_general_ci';", $link, PMA_DBI_QUERY_STORE);
    }
*/
//一行追加
	require_once('./libraries/charset_conversion.lib.php');
}

参考サイト

http://www.pwblog.com/user/pc/settei/121132.html
http://cl.pocari.org/2006-06-17-1.html


 PAGETOP