Spec-Zone.ru › MySQL 9.2

12.15 Настройка кодировки символов

Сервер MySQL имеет встроенную по умолчанию кодировку символов и правила сортировки. Чтобы изменить эти значения по умолчанию, используйте опции --character-set-server и --collation-server при запуске сервера. См. Раздел 7.1.7, «Параметры командной строки сервера». Правила сортировки должны соответствовать правилам сортировки для используемой кодировки символов по умолчанию. Чтобы определить доступные правила сортировки для каждой кодировки символов, используйте оператор SHOW COLLATION или запросите данные из таблицы INFORMATION_SCHEMA COLLATIONS.

Если вы попытаетесь использовать кодировку символов, которая не скомпилирована в ваш двоичный файл, могут возникнуть следующие проблемы:

  • Если ваша программа использует неверный путь для определения места хранения кодировок символов (обычно это каталог share/mysql/charsets или share/charsets в каталоге установки MySQL), эту проблему можно решить, используя опцию --character-sets-dir при запуске программы. Например, чтобы указать каталог, который будет использоваться клиентами MySQL, перечислите его в группе [client] файла параметров. Приведенные здесь примеры показывают, как это может выглядеть для Unix и Windows соответственно:

    [client]
    character-sets-dir=/usr/local/mysql/share/mysql/charsets
    
    [client]
    character-sets-dir="C:/Program Files/MySQL/MySQL Server 9.2/share/charsets"
    
  • Если кодировка символов — это сложная кодировка, которую нельзя загрузить динамически, необходимо перекомпилировать программу с поддержкой этой кодировки.

    Для кодировок Unicode вы можете определить правила сортировки без перекомпиляции, используя обозначения LDML. См. Раздел 12.14.4, «Добавление правил сортировки UCA в кодировку символов Unicode».

  • Если кодировка символов — это динамическая кодировка, но у вас нет файла конфигурации для неё, необходимо установить файл конфигурации для этой кодировки из новой дистрибуции MySQL.

  • Если в вашем файле индекса кодировки символов (Index.xml) нет имени кодировки, ваша программа отобразит сообщение об ошибке:

    Character set 'charset_name' is not a compiled character set and is not
    specified in the '/usr/share/mysql/charsets/Index.xml' file
    

    Для решения этой проблемы необходимо либо получить новый файл индекса, либо вручную добавить имена отсутствующих кодировок символов в текущий файл.

Вы можете принудительно заставить клиентские программы использовать определённую кодировку символов следующим образом:

[client]
default-character-set=charset_name

Обычно это не требуется. Однако, когда character_set_system отличается от character_set_server или character_set_client, и вы вводите символы вручную (как идентификаторы объектов базы данных, значения столбцов или оба), они могут отображаться некорректно в выводе клиента или сам вывод может быть отформатирован некорректно. В таких случаях запуск mysql клиента с параметром --default-character-set=system_character_set (то есть установка кодировки символов клиента, соответствующей кодировке системы) должно решить проблему.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-9.2-en/charset-configuration.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API