python - 国际化 - Python MySQLDb 和 ISO-8859-7

标签 python mysql internationalization mysql-python

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

相关文章:

javascript - 方法返回意外错误

SQL Server CAST/CONVERT 到特定于数字文化的

python - aiohttp 与 aiohttp-devtools 热重载

python - 用cartopy绘制特定国家的 map ?

php - MySQL 选择全部并根据另一列更新特定列字段

java - 使用 MySQL 转义 REGEXP 中的字符串文字

python - 如何: fit_generator in keras

python - Salesforce API : Creating EmailMessage and associating a Contact possible?

vuejs2 - 如何为 vuetify 制作 i18n

iphone - 从 Google 翻译 API 获取响应时编码错误?