Portál AbcLinuxu, 7. května 2025 13:35

Dotaz: problém s MySQLdb a znakovou sadou

4.10.2005 12:24 Milan Kaine
problém s MySQLdb a znakovou sadou
Přečteno: 263×
Odpovědět | Admin
  1. create table xyz (..., name varchar(64) character set latin2 collate latin2_czech_cs, ...)
  2. insert into xyz (name) values("Děčín")
  3. select name from xyz where name like "d%"
Problém je, že standardní mysql klient vrací výsledek selektu ve správném kódování, tj. v latin2, kdežto přes MySQLdb pythonovské rozhraní vrací národní znaky jako escape sequence:

def main():
	mydb = MySQLdb.connect(host=MYSQL_HOST, user=MYSQL_USER, passwd=MYSQL_PASSWORD, db=MYSQL_DBNAME, \
	read_default_file='/etc/my.cnf')
	MyCursor = mydb.cursor()
	MyCursor.execute('select name from xyz where name like "d%"')
	print MyCursor.fetchall()
místo očekávaného Děčín vypíše D\xec\xe8\xedn

Jak v klientovi mysql tak v mydb spojení jsou shodně nastaveny na latin2 tyto proměnné: character_set_client, character_set_connection, character_set_results

Nevěděl by někdo, proč se navrací v latin2 ?

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Na otázku zatím nikdo bohužel neodpověděl.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.