sql >> Databasteknik >  >> RDS >> Mysql

UnicodeEncodeError:'latin-1' codec kan inte koda tecken

Jag stötte på samma problem när jag använde Python MySQLdb-modulen. Eftersom MySQL låter dig lagra nästan vilken binär data du vill ha i ett textfält oavsett teckenuppsättning, hittade jag min lösning här:

Använda UTF8 med Python MySQLdb

Redigera:Citera från ovanstående URL för att tillfredsställa begäran i den första kommentaren...

"UnicodeEncodeError:'latin-1' codec kan inte koda tecken ..."

Detta beror på att MySQLdb normalt försöker koda allt till latin-1. Detta kan åtgärdas genom att köra följande kommandon direkt efter att du har upprättat anslutningen:

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

"db" är resultatet av MySQLdb.connect() , och "dbc" är resultatet avdb.cursor() .



  1. Hur tar jag bort från flera tabeller med INNER JOIN i SQL-servern

  2. Hur man infogar valda kolumner från en CSV-fil till en MySQL-databas med LOAD DATA INFILE

  3. Få tillgång till experternas syn på 2020 MVP Summit

  4. Skalningslösningar för MySQL (replikering, klustring)