MySQL Kamailio 表中的排序规则

MySQL Collation in Kamailio tables

出于某种我不知道的原因,我有一些 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。

什么是 Kamailio?它在数据库中存储什么?

一般来说,今天所有的软件都应该使用完整的 UTF-8 字符集编码。在 MySQL 中,语法是 CHARACTER SET utf8mb4.

你提到了两个COLLATIONs;它们与排序顺序有关,而不是字符编码。提到的两个对应字符集

  • utf32 -- 每个字符4个字节相当浪费space;几乎没有人使用它;今天没有充分的理由(我能想到的)使用它。
  • latin1 -- 每个字符1个字节;处理西欧,但 none 处理亚洲。它是 MySQL 中的旧默认值(因此您的表有它)。

我不知道尝试更改 Kamailio 的后果。

在 MySQL 如何处理字符集差异时要注意一件事:连接到 MySQL 时,您必须在 客户端 中指定编码。然后,当 INSERTingSELECTing 时,MySQL 将在 client编码和编码。由于这种自动转换,您目前不会看到西欧字符有任何问题。但是当试图存储到 latin1.

时,希腊文、中文等将是 mangled/lost