gpt4 book ai didi

python - MySql 没有正确比较 utf-8 字符串?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:29:51 26 4
gpt4 key购买 nike

我知道这听起来很奇怪,但看看这个:

mysql> select * from tbl_list_charset where word='aê';
+------+
| word |
+------+
| aª |
+------+

数据来自一个包含 utf-8 字符串的文件,python 程序读取该文件并将其插入到表中。由于 word 列定义唯一,因此 的插入失败。

文件中字符串的 utf-8 表示是:

aê = 61 C3 AA
aª = 61 C2 AA

我的环境:linux,python 2.6.4,mysql 5.0.77社区版

我很确定这不是一个错误,但我对我做错了什么一无所知......

最佳答案

排序规则决定哪些字符比较“相等”。是的,有很多这样的情况。你可以试试utf8_bin collat​​ion,你不会有这个问题,但它会区分大小写。 bin 归类严格比较,仅根据所选编码将字符分开,一旦完成,比较将在二进制基础上完成,就像许多编程语言比较字符串一样。

如果您需要介于此极端排序规则和当前排序规则之间的某些内容,您可以制作自定义排序规则。或者,您可以通过存储另一列并在其上使用不同的排序规则来使其“足够好”,并且仅针对特定目的使用每个列。

关于python - MySql 没有正确比较 utf-8 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4749898/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com