I'm using Python3 and pymysql and already have charset presnt

[python]
con = pymysql.connect( db = 'clientele', user = 'vergos', passwd = '******', 
charset = 'utf8' )
cur = con.cursor()
[/python]

From that i understand that the names being fetched from the db to pyhton 
script are being fetced as utf8, right?

I dont convert, format the string in the meanwhile. Python3 handles the 
encoidng and i dont know from where latin iso get into the middle but when i

[python]names = tuple( [s.encode('latin1').decode('utf8') for s in names] 
)[/python]

[output]UnicodeEncodeError('latin-1', 'Άκης Τσιάμης', 0, 4, 'ordinal not in 
range(256)')[/output]

which is a perfectly valid names but still gives an error.

Also the strings produced '\xce\x86\xce\xba\xce\xb7\xcf\x82 
\xce\xa4\xcf\x83\xce\xb9\xce\xac\xce\xbc\xce\xb7\xcf\x82' are strings not raw 
bytes.

WHY Python3 instead of fetching the values from the db as 'utf8' it stores the 
values in hex representation?
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to