如何在Python 2.7中使用UTF-8?

时间:2013-05-12 19:08:08

标签: python encoding

我只想让UTF-8正常工作。我试过这个:

#!/usr/bin/env python
# -*- coding: utf-8 -*- 

t = "одобрение за"
print t

但是当我从命令行运行这个程序时,输出看起来像:╨╛╨┤╨╛╨▒╤Ç╨╡╨╜╨╕╨╡╨╖╨░

我在网上上下搜索,尝试了整个sys.setdefaultencoding的事情,尝试调用encode()和decode(),尝试将小“u”放在前面,尝试unicode()等等。

我准备好从挫折中迸发出来。对于你应该做什么,有没有明确的答案?

2 个答案:

答案 0 :(得分:2)

您的代码适用于我(tm)

In [1]: t = u"одобрение за"

In [2]: print t
одобрение за

确保您的终端支持UTF-8。一种方法是检查LANG env变量:

$ echo $LANG
en_US.UTF-8

另外,请尝试locale命令。

$LANG/locale只是告诉你在写入stdout / stderr时系统会使用什么。 测试终端是否支持UTF-8的最佳方法可能是打印一些内容并查看它是否正确。像这样:

echo -e '\xe2\x82\xac'  

你应该得到 - 签名。

如果没有,请尝试不同的shell ...

答案 1 :(得分:0)

由于您使用的是Windows cmd.exe,因此您必须执行以下两个步骤:

  1. 确保您的控制台使用的是Lucidia控制台字体系列(其他字体无法正确显示UTF-8)。

  2. 键入chcp 65001ch ange c ode p年龄)并按Enter键。

  3. 运行您的命令。

  4. 对于后续运行(一旦关闭cmd.exe窗口),您将不得不再次更改代码页。字体应该是永久性的。