python如何输出字符串_Python3.0,如何使print()输出Unicode字符串?

我在WinXP5.1.2600中工作,编写了一个涉及中文拼音的Python应用程序,这让我陷入了无尽的Unicode问题。切换到Python3.0已经解决了其中的许多问题。但是,控制台输出的print()函数并不能识别Unicode。print('sys.stdout encoding is "' + sys.stdout.encoding + '"')

str1 = 'lüelā'

print(str1)

输出是(为了可读性将尖括号改为方括号):sys.stdout encoding is "cp1252"

Traceback (most recent call last):

File "TestPrintEncoding.py", line 22, in [module]

print(str1)

File "C:\Python30\lib\io.py", line 1491, in write

b = encoder.encode(s)

File "C:\Python30\lib\encodings\cp1252.py", line 19, in encode

return codecs.charmap_encode(input,self.errors,encoding_table)[0]

UnicodeEncodeError: 'charmap' codec can't encode character '\u0101'

in position 4: character maps to [undefined]

请注意,ü=\xfc=252没有问题,因为它位于ASCII的上层。但是\u 0101是超过8位的。

有人知道如何将sys.stdout的编码更改为“utf-8”吗?请记住,Python 3.0不再使用codecs模块,如果我理解文档正确的话。

抱歉,我给你的节目没有序言。在给出3行之前,它的开头如下:#!/usr/bin/env python

# -*- coding: utf-8 -*-

import sys

不幸的是,由“code:”行指定的编码是源代码,而不是控制台输出。但是谢谢你的想法!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值