我知道这已经被问过很多次了,但我很难理解整理和编码的区别。
好的,所以我们有一个 MySQL 数据库(实际上是几个),其中包含混合排序规则的表。现在,有些列utf8_unicode_ci
是latin1_swedish_ci
. 从那以后,我们将其utf8_unicode_ci
用作默认值。但是我们在 latin1 中有很多“遗留”列。
我们喜欢一致性,并希望将所有列转换为 utf8。幸运的是,我们 99.9% 的数据是英文的,其中(字面上)有几条记录有西班牙地址(波浪号)。对我们来说非常简单的东西,但我们希望以“正确的方式”做到这一点并完全支持任何语言。因此,utf8_unicode。
我们宁愿不必遍历每个表中的每一列并进行更改。是否有一个简单的脚本可以将每一列转换为utf8_unicode_ci
?
另外,我们需要寻找哪些陷阱?我的意思是,如果我错了,并且有我不知道的俄语或日语记录,那么我会有问题吗?
也许这应该是一个附带问题,但对于编码,UTF8 更好,因为它可以存储任何语言,对吗?例如,每个字符将有 2 或 4 个字节来表示它在数千个字符的“全局”字母表中应该是什么?对不起,如果这个类比听起来很愚蠢但试图理解。排序规则就是我查询时它们的排序方式。因此,如果字符像A8 9F
字母H
和B3 2E
字母一样存储,e
那么H
将首先出现,因为A8
出现在前面B3
?
哈,我现在头晕。抱歉,如果这似乎是三个不同的问题,但是当我去管理层说我需要转换列时,这就是为什么....
谢谢