我编写了一个 python 脚本来解析 HTML 页面,获取一些字符串,然后写入 mysql 表。我使用 MySQLDb
模块进行数据库连接。
检索到的字符串以 ISO-8859-7(希腊语)编码,这也是 MySQL 表中的默认编码。产生异常的代码如下:
def db_write(list) :
import MySQLdb as sql
try :
con = sql.connect(//database info here//)
except :
print "could not connect to database"
exit()
cur = con.cursor()
for i in my_range (8,len(list)-2,2) :
query = 'INSERT INTO as_doy VALUES (%s,"%s")' % (list[i],list[i+1])
print query
try :
cur.execute(query)
con.commit()
except :
print "failed"
con.rollback()
con.close()
我得到的异常是错误1366(HY000):错误的字符串值:'\xEF\xBF\xBD\xEF\xBF\xBD...'
我尝试过用 utf-8 编码字符串,用 iso-8859-7 解码和重新编码,但还没有任何效果。
最佳答案
通过将 charset
参数传递给 .connect()
或执行 SET NAMES utf8
(或等效命令)来确保连接排序规则正确在运行任何查询之前。
有关更多提示,请参阅this link .
关于python - 国际化 - Python MySQLDb 和 ISO-8859-7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10658292/