Python Unicode strangeness.
akuchlin at mems-exchange.org
Thu Feb 8 16:42:06 CET 2001
"Syver Enstad" <syver at NOSPAMcyberwatcher.com> writes:
> '%s, %s' % ('æøasfd', u'a')
> this throws unicode error.
> Is this by design?
I believe so, though either MAL or /F are more likely to give a
definitive reply. Because one of the arguments to % is a Unicode
string, it will coerce everything to Unicode. The encoding used when
coercing a regular string into a Unicode string is 7-bit ASCII, so
only characters <128 are handled. The first string in the tuple has
characters >128, so a UnicodeError is raised. If you make it a
Unicode string, there's no problem since it doesn't need to be
coerced; if you make 'a' a regular string, no coercion is attempted.
In either case, the exception isn't raised.
More information about the Python-list