tFF.msk.ru :: Sharing tFFed mind

Технологично => Веб => Тема начата: tFF от Сентябрь 27, 2005, 12:44:48



Название: Открываем в phpMyAdmin кодировку windows-1251
Отправлено: tFF от Сентябрь 27, 2005, 12:44:48
Несмотря на описанное ниже, надо стараться пользоваться utf-8 кодировками!
Для 4-го мускула и phpMyAdmin 2.6 и выше(?).
Протестировано на phpMyAdmin 2.6.1 и 2.6.3-pl1
Поехали!


Что надо сделать, чтобы иметь возможность активировать кодировку локализации Windows-1251?


1. Чтобы в списке "Language" получить не только UTF8-кодировки, но и другие, надо:

   добавить в начало /config.inc.php (/config.default.php)
   === begin
Код:
	// Разрешаем использование не-UTF-8 кодировок (для совместимости с MySQL3).
define('PMA_REMOVED_NON_UTF_8', 1);
   === end



   
2. Чтобы при выборе неUTF8-кодировки (win-1251, например) phpMyAdmin не скидывал выбранную кодировку обратно в UTF8, надо:
   
   внести изменения в файл /libraries/database_interface.lib.php  (строка где-то 160-ая)
   
        === begin (вместо этого куска кода)
Код:
        // If $lang is defined and we are on MySQL >= 4.1.x,
        // we auto-switch the lang to its UTF-8 version (if it exists)
        if (!empty($GLOBALS['lang']) && (substr($GLOBALS['lang'], -5) != 'utf-8')) {
            $lang_utf_8_version = substr($GLOBALS['lang'], 0, strpos($GLOBALS['lang'], '-')) . '-utf-8';
            if (!empty($GLOBALS['available_languages'][$lang_utf_8_version])) {
                $GLOBALS['lang'] = $lang_utf_8_version;
                $GLOBALS['charset'] = $charset = 'utf-8';
            }
        }
        === end
       
        === begin (вставить этот кусок кода, вместо указаного выше)
Код:
        // If $lang is defined and we are on MySQL >= 4.1.x,
        // we auto-switch the lang to its UTF-8 version (if it exists)
        if (!defined('PMA_REMOVED_NON_UTF_8') && !empty($GLOBALS['lang']) && (substr($GLOBALS['lang'], -5) != 'utf-8')) {
            $lang_utf_8_version = substr($GLOBALS['lang'], 0, strpos($GLOBALS['lang'], '-')) . '-utf-8';
            if (!empty($GLOBALS['available_languages'][$lang_utf_8_version])) {
                $GLOBALS['lang'] = $lang_utf_8_version;
                $GLOBALS['charset'] = $charset = 'utf-8';
            }
        }
        === end
       
        Фактически добавляется "!defined('PMA_REMOVED_NON_UTF_8') && " в первую строку приведенного куска кода.


Название: Re: Открываем в phpMyAdmin кодировку windows-1251
Отправлено: tFF от Февраль 28, 2006, 23:24:27
Также смотри (http://tff.msk.ru/forum/index.php/topic,172.0.html).