Peter Otten wrote: > Steven D'Aprano wrote: > >>>>>> import sys >>>>>> sys.getdefaultencoding() >>> 'ascii' >> >> That's technically known as a "lie", since if it were *really* ASCII it >> would refuse to deal with characters with the high-bit set. But it >> doesn't, it treats them in an unpredictable and implementation-dependent >> manner. > > It's not a lie, it just doesn't control the unicode-to-bytes conversion > when printing:
That's not what I'm referring to. I'm referring to this: py> s '\xff' There is no such ASCII character (or code point, to steal terminology from Unicode). ASCII is a 7-bit encoding, and includes 128 characters, with ordinal values 0 through 127. Once you accept arbitrary bytes 128 through 255, it's no longer ASCII, it's ASCII plus undefined stuff. (Historical note: the committee that designed ASCII *explicitly* rejected making it an 8-bit code. They also considered, but rejected, using a 6-bit code with a "shift" function.) -- Steven -- https://mail.python.org/mailman/listinfo/python-list