Issue 21164: print unicode in Windows console
Created on 2014-04-07 02:57 by LeslieK, last changed 2022-04-11 14:58 by admin. This issue is now closed.
| Messages (4) | |||
|---|---|---|---|
| msg215675 - (view) | Author: Leslie Klein (LeslieK) | Date: 2014-04-07 02:57 | |
The console behaves by encoding a str (using the sys.getdefaultencoding()) and then decodes the bytes to a glyph for rendering. The decoder used is 'cp437'. Apparently, there is no way to override that! See ipython notebook for summary and example of the issue. nbviewer.ipython.org/gist/LeslieK/10013426 |
|||
| msg215693 - (view) | Author: STINNER Victor (vstinner) * ![]() |
Date: 2014-04-07 11:08 | |
Hi, when you say "The console" is the the old MS-DOS command ("Windows console") opened when you run the "cmd.exe" program? Or IDLE or another console?
For the Windows console, see the old issue #1602 which is not fixed yet.
On Windows, sys.stdout.encoding is your OEM code page, which is usually different than the ANSI code page (locale.getpreferredencoding()).
|
|||
| msg215937 - (view) | Author: Terry J. Reedy (terry.reedy) * ![]() |
Date: 2014-04-11 17:43 | |
You can change the code page of a Command Prompt window, before calling Python, with ...> chcp <code-page>. There is 'something' called cp65001 that is supposed to be a utf-8 codepage. Once can change to it, but it does not work right. This has been discussed on StackOverflow and elsewhere.
The Idle Shell, running on tkinter, handles everything in the BMP because tcl/tk is unicode (ucs-2) based. The characters that display properly depend on the font you select. On my machine, all but three of the following arbitrary codepoints display proper characters.
>>> print('\u1111\u2222\u3333\u4444\u5555\u6666\u7777\u8888\u9999\uaaaa\ubbbb\ucccc\udddd\ueeee')
ᄑ∢㌳䑄啕晦睷袈香ꪪ뮻쳌�
|
|||
| msg215945 - (view) | Author: Leslie Klein (LeslieK) | Date: 2014-04-11 18:51 | |
I start ipython in Windows PowerShell. The "console" I am referring to is ipython running in WindowsPowerShell. I do not use the DOS cmd.exe When running ipython notebook from WindowsPowerShell -- no problem printing unicode. When running in PTVS (Python Tools for Visual Studio) debugger -- no problem printing unicode in Output window, or Interactive Python window. Problem does appear in Console window (which is the DOS window I believe). On Mon, Apr 7, 2014 at 7:08 AM, STINNER Victor <report@bugs.python.org>wrote: > > STINNER Victor added the comment: > > Hi, when you say "The console" is the the old MS-DOS command ("Windows > console") opened when you run the "cmd.exe" program? Or IDLE or another > console? > > For the Windows console, see the old issue #1602 which is not fixed yet. > > On Windows, sys.stdout.encoding is your OEM code page, which is usually > different than the ANSI code page (locale.getpreferredencoding()). > > ---------- > nosy: +haypo > > _______________________________________ > Python tracker <report@bugs.python.org> > <http://bugs.python.org/issue21164> > _______________________________________ > |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022-04-11 14:58:01 | admin | set | github: 65363 |
| 2014-04-11 18:51:09 | LeslieK | set | messages: + msg215945 |
| 2014-04-11 17:43:23 | terry.reedy | set | status: open -> closed nosy:
+ terry.reedy superseder: windows console doesn't print or input Unicode |
| 2014-04-07 11:08:40 | vstinner | set | nosy:
+ vstinner messages: + msg215693 |
| 2014-04-07 02:57:52 | LeslieK | create | |
