sql >> Databáze >  >> RDS >> Mysql

UnicodeEncodeError:Kodek 'latin-1' nemůže kódovat znak

Narazil jsem na stejný problém při použití modulu Python MySQLdb. Protože MySQL vám umožní ukládat téměř jakákoli binární data, která chcete, do textového pole bez ohledu na znakovou sadu, našel jsem své řešení zde:

Použití UTF8 s Python MySQLdb

Upravit:Citujte z výše uvedené adresy URL, abyste splnili požadavek v prvním komentáři...

"UnicodeEncodeError:'latin-1' kodek nemůže zakódovat znak..."

Je to proto, že MySQLdb se normálně snaží zakódovat vše do latin-1. To lze opravit provedením následujících příkazů ihned po navázání připojení:

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

"db" je výsledkem MySQLdb.connect() a "dbc" je výsledkem db.cursor() .



  1. Kolekce PL/SQL:Vnořená tabulka v databázi Oracle

  2. Jak nakonfigurovat replikaci zdroj-replika v MySQL

  3. Příkaz UPDATE byl v konfliktu s omezením REFERENCE - SQL Server / TSQL výukový program, část 76

  4. Parametrizovaný dotaz pro MySQL s C#