当前位置:   article > 正文

Python读取MySQL的utf8mb4_bin编码的字符串_utf8mb4 python

utf8mb4 python

最近在用Python读取MySQL中的数据时,遇到一个问题。背景如下:

MySQL中的字符串类型的字段,设置了两种编码,字段A是utf8mb4_bin,字段B是utf8mb4_general_ci。为什么两个字段用了不同的编码,当然是因为有实际需要。两个编码的区别如下:

utf8mb4_bin:将字符串每个字符用二进制数据编译存储,区分大小写,而且可以存二进制的内容。

utf8mb4_general_ci:ci即case insensitive,不区分大小写。

同一段代码(用Python读取MySQL里面的字段A和字段B),在两个电脑上运行,一个电脑显示的结果,是字段A和字段B都显示正常的字符串;另外一个电脑则显示,字段A显示成二进制了,而字段B显示正常的字符串。百思不得其解,后面发现,第一个电脑只安装了mysql-connector-python,另外一个电脑的则安装了两个连接MySQL的库,如图

 

更要命的是,代码里 import mysql.connect,对于两个库好像都通用。那对于第二个电脑来说,好像优先调用了mysql-connector库,实际上,要用mysql-connector-python才能正常从MySQL读取utf8mb4_bin编码的字符串。所以,mysql-connector库和mysql-connector-python库应该不能共存?另外,在有网络的情况下,安装这两个库,命令分别为pip mysql-connector和pip mysql-connector-python。但要是电脑一开始没有安装这两个库,而代码中有import mysql.connect,就会报错没有mysql.connect这个库,此时要注意需要安装是哪个库。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/264988
推荐阅读
相关标签
  

闽ICP备14008679号