Ungelöst "UnicodeEncodeError: 'latin-1' codec can T encode characters in position 86-87: ordinal not in range(256)"

Ich habe ein paar englische Sätze, die ich extrahieren aus einer text-Datei in eine MYSQL-Tabelle. Dies ist, wie ich meine Tabelle in MYSQL:

create table sentences ( ID int NOT NULL AUTO_INCREMENT ,  sentence varchar (255) , primary key (ID) ) character set = utf8;

und das ist mein python-Skript

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)

Und ich führe das Skript auf eine Datei auf diese Weise

python wikitext.py test

So, obwohl ich angegeben, dass die Tabelle sollte in der Lage sein, um alle Zeichen in UTF-8,
Ich habe immer noch diesen Fehler erhalten:

UnicodeEncodeError: 'latin-1' codec can't encode characters in position 86-87: ordinal not in range(256)
  • welche Art von Daten die Funktion get_sentences zurück? ist es eine Liste von unicode-Elementen?
  • ja, es gibt eine Liste von Sätzen.
InformationsquelleAutor kolonel | 2013-10-08
Schreibe einen Kommentar