Python karakterkódolás [helyett MySQL-python verzió(összeférhetetlenség) vagy hiba]

Pythonból így kapcsolódok egy meglévő MySQL adatbázishoz:


#! /usr/bin/env python
# -*- coding: ISO-8859-2 -*-

import MySQLdb
adatBazis = MySQLdb.connect(host='localhost',
                             user='umerleg',
                             passwd='abcde',
                             db='dbmerleg')
cur = adatBazis.cursor()

cur.e_xecute("D_ROP TABLE Kezelo")

SQL="""C_REATE TABLE Kezelo (
  idKezelo INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  Nev VARCHAR(40) NULL,
  Jelszo VARCHAR(12) NULL,
  Jogosultsag VARCHAR(1) NULL,
  PRIMARY KEY(idKezelo)
  );"""

cur.e_xecute(SQL)

SQL="i_nsert into Kezelo (Nev, Jelszo, Jogosultsag) values ('Rendszer adminisztrátor','ra2007','A')"
# SQL="i_nsert into Kezelo (Nev, Jelszo, Jogosultsag) values ('űáéúőpóüöÓÜÖÚŐPŰÁÉ','ra2007','A')"

cur.e_xecute(SQL)
adatBazis.c_ommit()
adatBazis.c_lose()

Ez a kód CentOS 4.4-en hibátlanul lefut elkészíti a táblát és beletesz egy rekordot. Ugyanez a Kód Fedora Cora 6-on ezt a hibaüzenetet eredményezi:


Traceback (most recent call last):
 File "zt.py", line 26, in ?
    cur.e_xecute(SQL)
 File "/usr/lib/python2.4/site-packages/MySQLdb/cursors.py", line 146, in execute
    query = query.encode(charset)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 74: ordinal not in range(128)

A CentOS 4.4-en Python-2.3.4 van, míg a Fedoran Python-2.4.4.
Talán a verzióváltással megváltozott a carakterkódolás kezelése a Pythonban, ami a 2.3.4-ben indirekte megtörtént, azt a 2.4.4-ben már explicite kellene csinálnom? De mi az?

Amúgy CentOS-en a kommentet megcserélve a 'űáéúőpóüöÓÜÖÚŐPŰÁÉ' sztringet is át tudja adni hibátlanul.

PS: (Egy php kóddal mind a két gépen eltudom végezni az adattábla létehozását és a fenti rekord hozzáadást, tehát nem a MySQL beállításával van gond.)
PS2: A fölösleges, aláhúzásjelek "_" azért vannak a kódban, mert különben megugat a HUP portál motorja az sql utasítások miatt, azt hiszi, hogy támadó vagyok.

Hozzászólások

Szerintem a mysql-python csomagok különbözősége esélyesebb.

Hello,

ahogy btami írta, valszeg' python-mysql verzió gond lesz. Hányas verziójú csomag van fent? Denian/Ubuntu alatt az 1.2.1-es python-mysql csinált ilyet, az 1.2.2-ben már jól működik minden.

Akkor nincs kizárva, mert a Fedoran a MySQL-python.i386-ból az 1.2.1-1 verzió van fent. Mindjárt keresek újabbat és meglátjuk azzak mi a helyzet.

Egy kis idő mulva...
Downgrade lett a vége erre: MySQL-python-1.2.0-3.2.2.i386.rpm
Igaz ez az rpmfind szerint FC5-re van, de ezzel mostmár megy az FC6-on is.
Köszönöm a segítséget.

Esetleg


SQL="i_nsert into Kezelo (Nev, Jelszo, Jogosultsag) values (u'Rendszer adminisztrátor','ra2007','A')"
# SQL="i_nsert into Kezelo (Nev, Jelszo, Jogosultsag) values (u'űáéúőpóüöÓÜÖÚŐPŰÁÉ','ra2007','A')"

formában (azaz unicode-ot használva)??