print是否在python中将字符串转换为unicode?

时间:2014-02-16 13:20:18

标签: python python-2.7 unicode

# -*- coding: utf8 -*-
s = '\xd6\xd0\xce\xc4'
print s

代码的摘录打印

中文

这不是预期的。我从序数中可以看出s不是一些ascii字符,因为序数是> 128.但这就是为什么print自动将字符串解码为utf8并打印它(根据一开始的编码声明)?

更新

我声明是gbk编码,但保持文件编解码器为utf8。提出了一个例外:

SyntaxError: 'gbk' codec can't decode bytes in position 8-9: illegal multibyte s
equence

表示编解码器转换失败。在哪里?

2 个答案:

答案 0 :(得分:2)

在Python 2.x中,print会精确打印您提供的字节字符串。您最终看到的内容取决于您的终端如何解释字节字符串。显然,您的终端设置为gb2312编解码器,它会显示您看到的结果。

答案 1 :(得分:0)

如果您确实希望在宣布时进行打印,请尝试print repr(s)