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 时,您必须在 客户端 中指定编码。然后,当 INSERTing
和 SELECTing
时,MySQL 将在 client编码和列编码。由于这种自动转换,您目前不会看到西欧字符有任何问题。但是当试图存储到 latin1
.
时,希腊文、中文等将是 mangled/lost
出于某种我不知道的原因,我有一些 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 时,您必须在 客户端 中指定编码。然后,当 INSERTing
和 SELECTing
时,MySQL 将在 client编码和列编码。由于这种自动转换,您目前不会看到西欧字符有任何问题。但是当试图存储到 latin1
.