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
а также SELECTing
MySQL преобразует (при необходимости и, если возможно) между кодировкой клиента и кодировкой столбца. Из-за этого автоматического преобразования вы в настоящее время не видите ничего плохого для западноевропейских символов. Но греческий, китайский и т. Д. Будут искажены / потеряны при попытке сохранить в latin1
,