2
我有一堆英文句子,我從文本文件提取到MYSQL表。這是我創造了我的MySQL表:未解決的「UnicodeEncodeError:'拉丁-1'編解碼器無法編碼位置86-87字符:序號不在範圍(256)」
create table sentences (ID int NOT NULL AUTO_INCREMENT , sentence varchar (255) , primary key (ID)) character set = utf8;
,這是我的Python腳本
from bs4 import BeautifulSoup as b
import sys
from fixsentence import *
import MySQLdb as db
bound = sys.argv[1]
con = db.connect('localhost' , 'root' , 'ayrefik1' , 'knowledgebase2')
curs = con.cursor()
def gettext(file):
temp_file = open(file)
soup = b(temp_file)
list = get_sentences(soup.get_text())
for x in list:
curs.execute('SET NAMES utf8;')
curs.execute('insert ignore into sentences (sentence) values (%s);', (x))
con.commit()
gettext(bound)
而且我運行一個文件中的腳本以這種方式
python wikitext.py test
因此,即使雖然我指定該表應該能夠處理UTF-8中的所有字符,但我仍然收到此錯誤:
UnicodeEncodeError: 'latin-1' codec can't encode characters in position 86-87: ordinal not in range(256)
函數get_sentences返回的數據類型是什麼?它是一個unicode元素的列表? – hago
是的,它返回一個句子列表。 – kolonel