Unicode string formating
Diez B. Roggisch
deets at nospam.web.de
Fri Nov 30 10:00:13 EST 2007
nico schrieb:
> Hi,
> I need to do a lot of string formating, and I have strings and/or
> unicode strings and when I do the following:
> "%s %s" % (u'Salut', 'H\xe4llo'), I get an exception :
> UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position
> 1: ordinal not in range(128)
>
> How can I insure I don't get an exception?
By not mixing unicode and str together. Either you decode your str to
become unicode objects using the proper encoding - or you encode the
unicode-objects before:
string = "a string"
u_string = string.decode("ascii") # or whatever you need
print u"%s %s" % (u'Salut', u_string)
Or:
salut_string = u"Salut".encode("utf-8") # whatever encoding you need
print u"%s %s" % (salut_string, "foo")
Diez
More information about the Python-list
mailing list