【发布时间】:2021-12-28 21:19:58
【问题描述】:
我正在使用mysql-connector-python 库连接并写入 MySQL 5.7 db。我已将编码设置为utf8mb4 和cursor.execute('SET CHARACTERS SET utf8mb4'),甚至将其包含在我的连接设置中:
import mysql.connector
from mysql.connector import Error
sg_titles_db_settings = {
'user': <user>,
'password': <password>,
'host': <host>,
'port': <port>,
'database': <db>,
'charset': 'utf8'
}
def get_mysql_connection():
try:
db_connection = mysql.connector.connect(**sg_titles_db_settings)
return db_connection
except Error as e:
print("Error: ", e)
return False
但任何非拉丁文(非英文字母),例如任何东欧字母字符或特殊符号(例如♬),都会插入为?。
如果我不更改编码,以下是我收到的错误:
1366 (HY000): Incorrect string value: '\xD0\x9E\xD1\x82\xD0\xB2...' for column...
我不明白我需要做什么才能解决此问题。我偶然发现的每篇文章似乎都没有帮助。
提前致谢!
【问题讨论】:
-
表也必须有utf8字符集或列
标签: python mysql mysql-python mysql-connector mysql-connector-python