可以使用默认排序规则 (latin_swedish_ci) 吗?

phe*_*hew 2 mysql collation

我搜索了一些意见,只说明他们从latinto转换utf8,请问我是否可以使用latin_swedish_ci?它与英文字符没有区别,所以可以吗?此外,如果我有一个meta-charsetUTF-8在我的web应用程序和我使用的latin_swedish_ci collation,它会影响什么?我想要你对此的意见。

小智 6

我强烈建议您使用utf8mb4代替latin_swedish_ci甚至 utf8.

甚至latin_swedish_ci支持所有英文字母,它可以而且最终会踢你的屁股。例如,姓名、地址和更多内容可能包含其他字符,这可能会弄乱您存储的数据,甚至更糟的是会产生明显的错误!

那么为什么不只是utf8你会问?因为在 MySQL 中utf8使用 3 个字节来存储一个字符并且不能存储每个 utf-8 字符,因此您需要 4 个字节,因此您需要utf8mb4. 如果您必须处理用户条目并且移动用户决定放入一些花哨的表情符号作为条目,这可能会让您大吃一惊。发生在我身上几次。

不要问我为什么 MySQL 用这种方式把整个 Unicode 的东西搞砸了,我不知道……也许latin_swedish_ci默认的原因也是一样的。

一般来说,对所有与文本相关的内容使用完整的 Unicode 并且您是安全的。网络是巨大的、国际化的,保存一些额外字节的存储空间足够便宜。现在就习惯它,即使你真的不需要它,你也会为未来做好准备。