我有一个表单数据:
v = "\xc5\x84"
这是一个 UTF-8 编码下的字符 "ń" 的字节表示。
如何使用变量 v 打印 >>ń<<?
我正在使用Python 2.7.2。
原始字符串中变量 v 包含了:
v = "\\xc5\\x84"
(双反斜杠)
相对于
v = "\xc5\x84"
(单反斜杠)
单反斜杠的 v 本身是有效的 UTF-8 字符。
在我的电脑上,输出结果取决于所使用的shell/python,如下所示。
正如Klaus所评论的那样,你系统中的语言环境设置也是一个重要的因素。
>>> v = "\xc5\x84"
>>> print v #in pycrust shell python 2.6
Å„
>>>
>>> print (v) #in idle python 3.2
Å
>>>
这台机器有以下设置:
>>> import locale
>>> locale.getlocale()
('es_ES', 'cp1252')
无论设置如何,您都可以获得您的字符
>>> print v.decode('utf-8')
ń
>>>
嗯,你不需要做任何特别的事情...只需要 print v
?
>>> v = "\xc5\x84"
>>> print v
ń
locale.getlocale()
返回 ('es_ES', 'cp1252')。我想要设置 setlocale
(为了完善我的回答),但我不熟悉这个模块,也无法从文档中找到方法。 - joaquin
cmd.exe
),在像美国和西欧这样的区域设置中,它将无法正常工作(编码为cp437
或cp850
),但在编码为cp852
的中欧区域设置中应该可以正常工作。 - John Machin