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

UnicodeEncodeError:'latin-1' codec kan ikke indkode tegn

Jeg stødte på det samme problem, da jeg brugte Python MySQLdb-modulet. Da MySQL vil lade dig gemme stort set alle binære data, du ønsker i et tekstfelt uanset tegnsæt, fandt jeg min løsning her:

Brug af UTF8 med Python MySQLdb

Rediger:Citer fra ovenstående URL for at imødekomme anmodningen i den første kommentar...

"UnicodeEncodeError:'latin-1' codec kan ikke kode tegn ..."

Dette skyldes, at MySQLdb normalt forsøger at kode alt til latin-1. Dette kan rettes ved at udføre følgende kommandoer lige efter, at du har oprettet forbindelsen:

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

"db" er resultatet af MySQLdb.connect() , og "dbc" er resultatet afdb.cursor() .



  1. Kan du lide Operator in Entity Framework?

  2. PostgreSQL:Vælg data med et like på tidsstempelfeltet

  3. Dynamisk SQL til at generere kolonnenavne?

  4. Sådan rettes "profilnavnet er ikke gyldigt" ved opdatering af en databasemailprofil i SQL Server (T-SQL)