怎么让 mysql 支持 cjk 的 B-I 区?

30 天前
 nowheretoseek

基本区和 A 区都是\u....的格式,B 区开始都是\u000.....了,发现 mysql 查询中 where 条件中有 B 区后面的字符,就会查询失败,具体症状是查出非常多的行,条件未被使用。

请问该怎么做?我试了 char 、undex 函数,还是一样的问题。

目前用的版本是 5.7.28 ,数据表和字段的校对规则都是 utf8mb4_general_ci,Google 后操作的一个语言支持查询结果如下:

SELECT CHARACTER_SET_NAME, DESCRIPTION
       FROM INFORMATION_SCHEMA.CHARACTER_SETS
       WHERE DESCRIPTION LIKE '%Chin%'
       OR DESCRIPTION LIKE '%Japanese%'
       OR DESCRIPTION LIKE '%Korean%'
       ORDER BY CHARACTER_SET_NAME;

CHARACTER_SET_NAME	DESCRIPTION
big5	Big5 Traditional Chinese
cp932	SJIS for Windows Japanese
eucjpms	UJIS for Windows Japanese
euckr	EUC-KR Korean
gb18030	China National Standard GB18030
gb2312	GB2312 Simplified Chinese
gbk	GBK Simplified Chinese
sjis	Shift-JIS Japanese
ujis	EUC-JP Japanese
899 次点击
所在节点    MySQL
2 条回复
nowheretoseek
30 天前
补充,问题是 select 时出现的,insert 并无问题; collation 改为 utf8mb4_unicode_ci 后,问题依旧。
nowheretoseek
30 天前
应该跟驱动程序及其配置也没有关系,在 php 、pyton 或者 mysql 终端下,问题是一样的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1036022

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX