Kamailio表中的MySQL排序

Kamailio表中的MySQL排序,mysql,github,collation,kamailio,Mysql,Github,Collation,Kamailio,出于某种原因,我不知道,在示例中,我有一些Kamailio表具有utf32_general_ci排序位置,其他表具有latin1_swedish_ci 我试图找到github repos的答案,但并没有指定排序规则 是吗?这很重要吗?哪一个是正确的选择 我的Kamailio版本是4.4.3。什么是Kamailio?它在数据库中存储什么 一般来说,现在的所有软件都应该使用完整的UTF-8字符集编码。在MySQL中,语法是字符集utf8mb4 你提到了两个排序规则;它们与排序顺序有关,而不是字符编码

出于某种原因,我不知道,在示例中,我有一些Kamailio表具有utf32_general_ci排序位置,其他表具有latin1_swedish_ci

我试图找到github repos的答案,但并没有指定排序规则

是吗?这很重要吗?哪一个是正确的选择


我的Kamailio版本是4.4.3。

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

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

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

utf32-每个字符4字节相当浪费空间;几乎没有人使用它;今天我想不出有什么好的理由来使用它。 拉丁语1-每个字符1字节;负责西欧,但不负责亚洲。这是MySQL中的一个旧默认值,因此您的表拥有它。 我不知道试图改变Kamailio的后果


MySQL如何处理字符集差异需要注意一点:连接到MySQL时,必须在客户端指定编码。然后,在插入和选择时,MySQL将根据需要进行转换,如果可能,将在客户端编码和列编码之间进行转换。由于这种自动转换,您目前不会看到西欧字符有任何错误。但希腊语、汉语等在尝试存储到拉丁语1时会被破坏/丢失。

然后,二进制文件是透明的?@JavierValencia-如果表中的字符集可以容纳字符,如果您正确识别客户端中字符的编码,并且如果两个字符集之间存在映射,然后MySQL将在插入和选择的过程中正确地更改位。“二进制”代码由静态/动态设置驱动。“二进制”数据在操作系统中的存储方式相同。或者你在问别的问题?utf8mb4和utf32可能可以映射到任何其他字符集。那是他们的工作。