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