Anders Wegge Keller
2008-11-17 14:07:34 UTC
Jeg har en stribe URL-encodede strenge, som jeg skal have puttet i en
mysql-database. Det går fint nok med f. eks
urllib.unquote('%C3%85rhus').decode('utf-8)
der giver mig en nydelig unicodestreng der står Århus i. Den er lige
til at sætte i databasen. Men når man så kommer til de mere eksotiske
strenge som f. eks '%C5%81%C3%B3d%C5%BA', får jeg en exception:
UnicodeEncodeError: 'latin-1' codec can't encode character
u'\u0141' in position 46: ordinal not in range(256)
Det undrer mig en smule, da jeg i mit MySQLdb.connect() har
use_unicode=True. Jeg kan ikke helt gennemskue om det er fordi min
oprindelige streng ikke er valid utf-8, eller om det slet og ret er
fordi MySQLdb hårdnakket ænsker at oversætte til 8859-1.
Er der nogen der kan komme med et bud på hvordan jg i det mindste får
afgrænset problemet til den ene af de to muligheder?
PS. Til dem der måtte undre sig, kan jeg fortælle at der er tale om
navnet på den trediestørste by i Polen.
mysql-database. Det går fint nok med f. eks
urllib.unquote('%C3%85rhus').decode('utf-8)
der giver mig en nydelig unicodestreng der står Århus i. Den er lige
til at sætte i databasen. Men når man så kommer til de mere eksotiske
strenge som f. eks '%C5%81%C3%B3d%C5%BA', får jeg en exception:
UnicodeEncodeError: 'latin-1' codec can't encode character
u'\u0141' in position 46: ordinal not in range(256)
Det undrer mig en smule, da jeg i mit MySQLdb.connect() har
use_unicode=True. Jeg kan ikke helt gennemskue om det er fordi min
oprindelige streng ikke er valid utf-8, eller om det slet og ret er
fordi MySQLdb hårdnakket ænsker at oversætte til 8859-1.
Er der nogen der kan komme med et bud på hvordan jg i det mindste får
afgrænset problemet til den ene af de to muligheder?
PS. Til dem der måtte undre sig, kan jeg fortælle at der er tale om
navnet på den trediestørste by i Polen.
--
/Wegge
/Wegge