Domanda

I am trying to insert some data into a MySQL Database with this statment:

INSERT INTO tweets(tweeter,tweet)VALUES ('Lord_Sugar','RT @BTSport: This cerebral figure succeeds in insulting everyone’s intelligence. @CalvinBook looks at Kinnears impact on #NUFC http://t.…')

But I am getting this error:

UnicodeEncodeError: 'latin-1' codec can't encode character u'\u2019' in position 119: ordinal not in range(256)

I know which character its talking about - its '…' at the end of the tweet, but don't know how to get around it.

È stato utile?

Soluzione

I'm guessing that you are connecting using MySQLDb.

If that is so, you should use charset and use_unicode parameters in your connection string. MySQLdb by default uses Latin-1:

import MySQLdb    
dbcon = MySQLdb.connect(user="root",db="twitter",use_unicode=True,charset='UTF8')
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top