Mysql
 sql >> Database >  >> RDS >> Mysql

UnicodeEncodeError:il codec 'latin-1' non può codificare i caratteri

Mi sono imbattuto in questo stesso problema durante l'utilizzo del modulo Python MySQLdb. Poiché MySQL ti consentirà di archiviare praticamente tutti i dati binari che desideri in un campo di testo indipendentemente dal set di caratteri, ho trovato la mia soluzione qui:

Utilizzo di UTF8 con MySQLdb Python

Modifica:citare dall'URL sopra per soddisfare la richiesta nel primo commento...

"UnicodeEncodeError:il codec 'latin-1' non può codificare il carattere ..."

Questo perché MySQLdb normalmente tenta di codificare tutto in latin-1. Questo può essere risolto eseguendo i seguenti comandi subito dopo aver stabilito la connessione:

db.set_character_set('utf8')
dbc.execute('SET NAMES utf8;')
dbc.execute('SET CHARACTER SET utf8;')
dbc.execute('SET character_set_connection=utf8;')

"db" è il risultato di MySQLdb.connect() e "dbc" è il risultato di db.cursor() .