sql >> Database >  >> RDS >> Mysql

UnicodeEncodeError:'latin-1' codec kan geen teken coderen

Ik kwam hetzelfde probleem tegen bij het gebruik van de Python MySQLdb-module. Omdat je met MySQL zowat alle binaire gegevens die je wilt in een tekstveld kunt opslaan, ongeacht de tekenset, heb ik hier mijn oplossing gevonden:

UTF8 gebruiken met Python MySQLdb

Bewerken:citeer uit de bovenstaande URL om te voldoen aan het verzoek in de eerste opmerking...

"UnicodeEncodeError:'latin-1' codec kan geen teken coderen ..."

Dit komt omdat MySQLdb normaal gesproken alles probeert te coderen naar latin-1. Dit kan worden opgelost door de volgende opdrachten uit te voeren direct nadat u de verbinding tot stand hebt gebracht:

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

"db" is het resultaat van MySQLdb.connect() , en "dbc" is het resultaat vandb.cursor() .



  1. is er een voordeel aan varchar(500) ten opzichte van varchar(8000)?

  2. Postgresql wijzig kolomtype van int in UUID

  3. Installeer MySQL Workbench voor databasebeheer

  4. Hoe orakelindexen kiezen en optimaliseren?