繁体   English   中英

将Scrapy for Python项目添加到MYSQL时的汉字编码问题

[英]Chinese character encoding issue when adding Scrapy for Python items into MYSQL

我正在尝试将scrapy或MYSQL无法从python scrapy的中文文本抓取到MYSQL数据库中,但是使用我当前的方法似乎无法处理中文字符。

def insert_table(datas):
    sql = "INSERT INTO %s (name, uses, time_capt) \
        values('%s', '%s', NOW())" % (SQL_TABLE,
            escape_string(datas['name']),
            escape_string(datas['uses']),
            )
    if cursor.execute(sql):
                print "Inserted"
    else:
        print "Something wrong"

添加到MYSQL数据库时,我不断收到此错误:

exceptions.UnicodeEncodeError: 'ascii' codec can't encode characters in position 1-7: ordinal not in range(128)

datas['name']包含格式正确的汉字。 如果我在代码中打印该变量,它会正确显示。 在将.encode['utf8']添加到MYSQL之前,我曾尝试添加它。这使错误消失了,但是这使它在数据库中显示为乱码。 难道我做错了什么?

编辑,这是我当前的代码:

 15 def insert_table(datas):
 16     sql = "INSERT INTO %s (name, uses, time_capt) \
 17         values(%s, %s, NOW())",  (SQL_TABLE,
 18             escape_string(datas['name']),
 19             escape_string(datas['uses']),
 20             )
 21     if cursor.execute(sql):
 22                 print "Inserted"
 23     else:
 24         print "Something wrong"                           

当我使用name = u"大学"作为“ scrapy”项目中的变量时,遇到了类似的问题。 在添加注释-*- coding: utf-8 -*-错误消失了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM