python3 unicode_与Python 3.4,Unicode,不同语言和Windows有什么关系?

与Python 3.4,Unicode,不同语言和Windows有什么关系?

快乐的例子:#!/usr/bin/env python# -*- coding: utf-8 -*-czech = u'Leoš Janáček'.encode("utf-8")print(czech)pl = u'Zdzisław Beksiński'.encode("utf-8")print(pl)jp = u'リング 山村 貞子'.encode("utf-8")print(jp)chinese = u'五行'.encode("utf-8")print(chinese)MIR = u'Машина для Инженерных Расчётов'.encode("utf-8")print(MIR)pt = u'Minha Língua Portuguesa: çáà'.encode("utf-8")print(pt)

不愉快的输出:b'Leo\xc5\xa1 Jan\xc3\xa1\xc4\x8dek'b'Zdzis\xc5\x82aw Beksi\xc5\x84ski'b'\xe3\x83\xaa\xe3\x83\xb3\xe3\x82\xb0 \xe5\xb1\xb1\xe6\x9d\x91 \xe8\xb2\x9e\xe5\xad\x90'b'\xe4\xba\x94\xe8\xa1\x8c'b'\xd0\x9c\xd0\xb0\xd1\x88\xd0\xb8\xd0\xbd\xd0\xb0 \xd0\xb4\xd0\xbb\xd1\x8f \xd0\x98\xd0\xbd\xd0\xb6\xd0\xb5\xd0\xbd\xd0\xb5\xd1\x80\xd0\xbd\xd1\x8b\xd1\x85 \xd0\xa0\xd0\xb0\xd1\x81\xd1\x87\xd1\x91\xd1\x82\xd0\xbe\xd0\xb2'b'Minha L\xc3\xadngua Portuguesa: \xc3\xa7\xc3\xa1\xc3\xa0'

如果我像这样打印它们:jp = u'リング 山村 貞子'print(jp)

我明白了:Traceback (most recent call last):

File "x.py", line 5, in

print(jp)

File "C:\Python34\lib\encodings\cp850.py", line 19, in encode return codecs.charmap_encode(input,self.errors,encoding_map)[0]UnicodeEncodeError: 'charmap' codec can't encode characters in position

0-2: character maps to

我还尝试了以下问题(以及涉及的其他替代方案sys.stdout.encoding):#!/usr/bin/env python# -*- coding: utf-8 -*-from __future__ import print_functionimport sysdef safeprint(s):

try:

print(s)

except UnicodeEncodeError:

if sys.version_info >= (3,):

print(s.encode('utf8').decode(sys.stdout.encoding))

else:

print(s.encode('utf8'))jp = u'リング 山村 貞子'safeprint(jp)

事情变得更加神秘:πâ¬πâ│πé░ σ▒▒µ¥æ Φ▓₧σ¡É

那么,Python 3.4,Unicode,不同语言和Windows的处理是什么?几乎所有可能的例子我都能找到,处理Python 2.x.

是否有一种通用的跨平台方式在Python 3.4中以一种体面和非讨厌的方式从任何语言打印任何Unicode字符?

编辑:

我试过在终端打字:chcp 65001

要更改代码页,如此处和注释中所提议的那样,它不起作用(包括使用sys.stdout.encoding的尝试)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值