This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: Unable to print Unicode characters in Python 3 on Windows
Type: crash Stage:
Components: None Versions: Python 3.0, Python 3.1
process
Status: closed Resolution: works for me
Dependencies: Superseder:
Assigned To: Nosy List: giampaolo.rodola, loewis
Priority: normal Keywords:

Created on 2009-01-27 12:51 by giampaolo.rodola, last changed 2022-04-11 14:56 by admin. This issue is now closed.

Messages (2)
msg80650 - (view) Author: Giampaolo Rodola' (giampaolo.rodola) * (Python committer) Date: 2009-01-27 12:51
While trying to port pyftpdlib to Python 3.x I noticed that Python 3.0
has a serious issue since unable to print certain unicode characters on
stdout:

Python 3.0 (r30:67507, Dec  3 2008, 20:14:27) [MSC v.1500 32 bit
(Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> print('\u20ac')  # euro sign
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\python30\lib\io.py", line 1491, in write
    b = encoder.encode(s)
  File "C:\python30\lib\encodings\cp850.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u20ac' in
position
0: character maps to <undefined>
>>>


Note that the same thing works on Python 2.6

Python 2.6.1 (r261:67517, Dec  4 2008, 16:51:00) [MSC v.1500 32 bit
(Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> print unicode('\u20ac')
\u20ac

This same thing is also discussed on python ml:
http://groups.google.it/group/comp.lang.python/browse_thread/thread/fb42765fe7476fc9/f560b4eaf2b0e3f4?hl=it&pli=1
msg80665 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2009-01-27 18:13
Your 2.6 example is incorrect. Try

py> print u'\u20ac'

If you want the 3.0 equivalent of your 2.6 code: it is

py> print(r'\u20ac')
\u20ac

Closing this as "works for me".
History
Date User Action Args
2022-04-11 14:56:44adminsetgithub: 49331
2009-01-27 18:13:00loewissetstatus: open -> closed
resolution: works for me
messages: + msg80665
nosy: + loewis
2009-01-27 12:51:55giampaolo.rodolacreate