我正在尝试将来自 mysql.com 的 MySQL Connector/Python 与 Python 3 结合使用。
我有 UTF-8 编码的表,当我获取行时,我所有的字符列都像 bytearray
一样返回。这是制造一些混乱。
我如何直接获取 str
?
更新:
# -*- coding: utf-8 -*-
import mysql.connector
con = mysql.connector.connect( user ="root", db = "vg_site_db", charset = 'utf8' )
cursor = con.cursor()
sql = """select caption from domains
"""
cursor.execute( sql )
row = cursor.fetchone()
while row is not None:
print( row )
row = cursor.fetchone()
输出:
(bytearray(b'ezsp.ru'),)
(bytearray(b'eazyshop.ru'),)
(bytearray(b'127.0.0.1:8080'),)
(bytearray(b'rmsvet.ru'),)
我想:
('ezsp.ru',)
('eazyshop.ru',)
('127.0.0.1:8080',)
('rmsvet.ru',)
更新2:
我的表使用 COLLATE utf8_bin
。
原文由 Gulaev Valentin 发布,翻译遵循 CC BY-SA 4.0 许可协议
似乎当您使用二进制排序规则时会发生这种情况,至少我也是如此。要将字节数组转换为 Unicode 字符串,您可以添加自定义转换器类: