[英]Chinese character encoding issue when adding Scrapy for Python items into MYSQL
I'm trying to get scraped Chinese text into a MYSQL database from python scrapy, but it seems that either scrapy or MYSQL can't handle Chinese characters using my current method. 我正在尝试将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"
I keep getting this error when adding into the MYSQL database: 添加到MYSQL数据库时,我不断收到此错误:
exceptions.UnicodeEncodeError: 'ascii' codec can't encode characters in position 1-7: ordinal not in range(128)
datas['name']
contains correctly formatted Chinese characters. datas['name']
包含格式正确的汉字。 If I print the variable within the code, it comes out properly. 如果我在代码中打印该变量,它会正确显示。 I've tried adding
.encode['utf8']
before adding it into MYSQL, which makes the error go away, but that makes it come out as garbled gibberish within my database. 在将
.encode['utf8']
添加到MYSQL之前,我曾尝试添加它。这使错误消失了,但是这使它在数据库中显示为乱码。 Am I doing something wrong? 难道我做错了什么?
Edit, This is my current code: 编辑,这是我当前的代码:
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"
I have met similar problem when I use name = u"大学"
as a variable in "scrapy" project. 当我使用
name = u"大学"
作为“ scrapy”项目中的变量时,遇到了类似的问题。 After I add the comment -*- coding: utf-8 -*-
the error is gone. 在添加注释
-*- coding: utf-8 -*-
错误消失了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.