MySQL Collation в таблицах Kamailio

По какой-то причине я не знаю, у меня есть несколько таблиц Kamailio с utf32_general_ci сопоставление (местоположение в примере) и другие с latin1_swedish_ci,

Я пытаюсь найти ответ на репозитории github ( https://github.com/kamailio/kamailio/blob/4.4/scripts/mysql/my_create.sql), но сортировка не указана.

Вот так? Имеет значение? Какой это правильный выбор?

Моя версия Kamailio - 4.4.3.

1 ответ

Решение

Что такое Kamailio? Что он хранит в базе данных?

В общем, все программное обеспечение сегодня должно использовать полное UTF-8 кодировка кодировки. В MySQL синтаксис CHARACTER SET utf8mb4,

Вы упомянули два COLLATIONs; они связаны с порядком сортировки, а не с кодировкой символов. Два упомянутых соответствуют наборам символов

  • utf32 - 4 байта на символ довольно бесполезное пространство; практически никто не использует его; нет никакой веской причины (о которой я могу думать), чтобы использовать это сегодня.
  • latin1 - 1 байт на символ; обращается с Западной Европой, но не с Азией. Это старый стандарт по умолчанию в MySQL (следовательно, в ваших таблицах он есть).

Я не знаю последствий попыток изменить Камайлио.

Следует обратить внимание на то, как MySQL работает с различиями в наборе символов: при подключении к MySQL необходимо указать кодировку в клиенте. Тогда, когда INSERTing а также SELECTingMySQL преобразует (при необходимости и, если возможно) между кодировкой клиента и кодировкой столбца. Из-за этого автоматического преобразования вы в настоящее время не видите ничего плохого для западноевропейских символов. Но греческий, китайский и т. Д. Будут искажены / потеряны при попытке сохранить в latin1,

Другие вопросы по тегам