"%s" vs unicode
Terry Reedy
tjreedy at udel.edu
Tue Jan 7 17:46:53 EST 2003
More information about the Python-list mailing list
Tue Jan 7 17:46:53 EST 2003
- Previous message (by thread): "%s" vs unicode
- Next message (by thread): "%s" vs unicode
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
"Robin Becker" <robin at jessikat.fsnet.co.uk> wrote in message news:1GtMGLAYnyG+Ew34 at jessikat.demon.co.uk... > A user reports that an old style error message is being smashed as the > message was being turned into unicode. > > the situation was of the form > > raise "xxxx %s' % var > > where var was a lump of unicode. We can easily correct the sistuation. > > We didn't expect unicode, but what's surprising is that "%s" % u'A' --> > u'A'. u'1234' works just as well, with a corresponding output. >Doesn't %s mean take the str()? I looked in vain in the docs > for the definition of exactly what "%s" % x is supposed to mean, The doc (LibRef 2.2.6.2 String Formatting Operations) is slightly contradictory. In the table for % it does say s String (converts any python object using str()). but the first paragraph ends with "If format is a Unicode object, or if any of the objects being converted using the %s conversion are Unicode objects, the result will be a Unicode object as well. " I reported this as SF bug 664044. Your user's problem appear to arise from the unicode result. >>> raise u'a' Traceback (most recent call last): File "<stdin>", line 1, in ? TypeError: exceptions must be strings, classes, or instances, not unicode Terry J. Reedy
- Previous message (by thread): "%s" vs unicode
- Next message (by thread): "%s" vs unicode
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list