主题:【求助】mysql 里面邪门的 utf8mb4 问题 -- 铁手

大河奔流 导读 复 14 阅 2255

全看 分页 树展 一览 主题

2020-05-03 21:55:14
4514775 复 4514702
铁手
铁手`352`/bbsIMG/upload/face/352.gif`70`46742`40950`506997`正九品上:儒林郎|仁勇校尉`2003-05-03 11:59:57`
多谢各位帮忙,有所改进,但问题依旧存在。 2

这里汇报一下测试结果,看看大家有没有什么想法。@西电鲁丁 @葡萄干 @骆筱 @shinji

首先需要确认的是,内容保存没有问题。输入什么,保存的也是什么。毛病出在索引上。

Collation最早是用 gbk_chinese_ci

以下是直接在库结构上改(不知道 DUMP 出来再 IMPORT 进去会不会有区别)的情况。

如果改成 utf8mb4_general_ci 则全角和半角字符不再被同等看待,解决部分问题。但是出现 e 等同于 é 的情况。以及两个历史遗留的乱码变成等同。

_ci 的意思是 case insensitive,所以这可能就是看似不同,但是被当作相同的原因。

如果改成 utf8mb4_bin 则上述 全角字符问题,e 等同于 é 这两种情况不再存在。那两个乱码问题依旧存在。

现在看来,大概就是只能用 utf8mb4_bin,然后手工修改那两个乱码。

邪门的是,这两个乱码我怎么看都是一样的,不知道在 gbk_chinese_ci 的时候,为什么会被当作不一样。


2020-05-03 21:55:14