Ron Garret wrote:
I would have thought that the answer would be: the default encoding (duh!) But empirically this appears not to be the case:

unicode('\xb5')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0xb5 in position 0: ordinal not in range(128)

The unicode function is usually used to decode bytes read from *external sources*, each of which can have its own encoding. So the function (actually, developer crew) refuses to guess and uses the ascii common subset.

u'\xb5'
u'\xb5'
print u'\xb5'

Unicode literals are *in the source file*, which can only have one encoding (for a given source file).

(That last character shows up as a micron sign despite the fact that my default encoding is ascii, so it seems to me that that unicode string must somehow have picked up a latin-1 encoding.)

I think latin-1 was the default without a coding cookie line. (May be uft-8 in 3.0).

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to