簡體   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