Python 3.0b2 cannot map '\u12b'
Terry Reedy
tjreedy at udel.edu
Mon Sep 1 21:04:22 EDT 2008
Marc 'BlackJack' Rintsch wrote:
First, thank you for the informative responses.
> The windows command prompt expects cp437 because that's what old DOS
> programs print to it.
Grrr. When the interpreter runs, it opens the command prompt window
with Python running, and the window closes when Python exits, so there
are no other programs involved. I don't suppose there is anyway to tell
Command Prompt to accept something better.
> But OOo works with unicode internally, so there's no communication with
> outside programs involved here.
Python 3 uses unicode internally also, but I gather CommandPrompt is an
outside program used as a quick substitute for coding a plain window
with MFC, for instance.
----------------------
I did some experiments.
I added the /u flag after cmd.exe in the Command Prompt shortcut and the
font to Lucida Console (which people on the web say handles unicode).
I opened the prompts window and entered 'chcp 1252' the same codepage as
IDLE. Start Python3.
>>> import sys
>>> sys.stdout.encoding
'cp1252'
>>> '\u012b'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Program Files\Python30\lib\io.py", line 1428, in
b = encoder.encode(s)
File "C:\Program Files\Python30\lib\encodings\cp1252.py", <etc>
same with raster font choice.
chcp 65001, which supposedly is UTF-8, disables all output. Perhaps
Python does not recognize it as a synonym for UTF-8.
The same on IDLE (with codepage 1252) gives i macron (bar on top). So
something else is going on other than just codepage.
I tried a second time and instead got "'\u012b'" and no error. Hooray,
I thought, but I closed and tried again the same way, as best I know,
but got the same error as before. Cp65001 also did and then did not
work. Python does notice the code page change.
tjr
More information about the Python-list
mailing list