0

我编写了一个 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()

我得到的例外是ERROR 1366 (HY000): Incorrect string value: '\xEF\xBF\xBD\xEF\xBF\xBD...'

我试过用 utf-8 编码字符串,用 iso-8859-7 解码和重新编码,但对我来说还没有任何效果。

4

1 回答 1

1

在运行任何查询之前,通过将charset参数传递给.connect()或执行(或等效)来确保您的连接排序规则是正确的。SET NAMES utf8

有关更多提示,请参阅此链接

于 2012-05-18T19:05:36.713 回答