Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

UnicodeEncodeError:codec 'latin-1' não pode codificar caractere


Eu me deparei com esse mesmo problema ao usar o módulo Python MySQLdb. Como o MySQL permite armazenar praticamente todos os dados binários que você deseja em um campo de texto, independentemente do conjunto de caracteres, encontrei minha solução aqui:

Usando UTF8 com Python MySQLdb

Edit:Cite a URL acima para satisfazer a solicitação no primeiro comentário...

"UnicodeEncodeError:'latin-1' codec não pode codificar caractere ..."

Isso ocorre porque o MySQLdb normalmente tenta codificar tudo para latin-1. Isso pode ser corrigido executando os seguintes comandos logo após você estabelecer a conexão:
db.set_character_set('utf8')
dbc.execute('SET NAMES utf8;')
dbc.execute('SET CHARACTER SET utf8;')
dbc.execute('SET character_set_connection=utf8;')

"db" é o resultado de MySQLdb.connect() , e "dbc" é o resultado de db.cursor() .