【发布时间】:2012-06-02 06:36:03
【问题描述】:
通过 Python 将大约 6k 行添加到我的 mySQL 数据库后,一些字母是错误的(波兰字母),例如 Å‚ 代表 ł 和 ż 代表 ż 等。我该如何修复它?我的python代码是:
# -*- coding: utf-8 -*-
import MySQLdb
import string
import codecs
file = codecs.open("----", 'r', 'utf-8')
db = MySQLdb.connect(host="-----", port=3306, user="-----", passwd="------", db="----")
cursor = db.cursor()
for line in file:
lines = string.replace(line, "'", '"')
cursor.execute("INSERT INTO Logs (Text) VALUE ('%s')"% lines.encode("utf-8"))
db.close()
print("done")
运行这段代码后,运行正常,但是在 PhpMyAdmin 中,出现了错误的字母。 数据库中的编码是 UTF-8,文件是 ANSI 为 UTF-8(来自记事本++)。 有什么帮助吗?
【问题讨论】:
-
你确定 PHPMyAdmin 不只是显示错误吗?您可能想查看stackoverflow.com/questions/4777900/…
-
它显示正确,下面的答案是让它工作。
-
使用参数化 sql 代替 Python 字符串插值
-
而不是
cursor.execute("INSERT INTO Logs (Text) VALUE ('%s')"% lines.encode("utf-8")),最好是cursor.execute("INSERT INTO Logs (Text) VALUE (%s)", lines.encode("utf-8"))。