Python 3.0b2 cannot map '\u12b'
Marc 'BlackJack' Rintsch
bj_666 at gmx.net
Mon Sep 1 08:19:15 EDT 2008
On Mon, 01 Sep 2008 02:27:54 -0400, Terry Reedy wrote:
> I doubt the OP 'chose' cp437. Why does Python using cp437 even when the
> default encoding is utf-8?
>
> On WinXP
> >>> sys.getdefaultencoding()
> 'utf-8'
> >>> s='\u012b'
> >>> s
> Traceback (most recent call last):
> File "<stdin>", line 1, in <module>
> File "C:\Program Files\Python30\lib\io.py", line 1428, in write
> b = encoder.encode(s)
> File "C:\Program Files\Python30\lib\encodings\cp437.py", line 19, in
> encode
> return codecs.charmap_encode(input,self.errors,encoding_map)[0]
> UnicodeEncodeError: 'charmap' codec can't encode character '\u012b' in
> position
> 1: character maps to <undefined>
Most likely because Python figured out that the terminal expects cp437.
What does `sys.stdout.encoding` say?
> To put it another way, how can one 'choose' utf-8 for display to screen?
If the terminal expects cp437 then displaying utf-8 might give some
problems.
Ciao,
Marc 'BlackJack' Rintsch
More information about the Python-list
mailing list