# -*- coding: utf8 -*-
s = '\xd6\xd0\xce\xc4'
print s
的代码打印打印将字符串转换为Python中的Unicode?
中文
不期望其摘录。从字典中我可以看到s
不是一些ASCII字符,因为序号大于128.但是这就是为什么print
会自动将字符串解码为utf8并打印出来(根据最初的编码语句)?
更新:
我宣布为gbk的编码,但保留文件的编解码器为UTF8。一个异常引发:
SyntaxError: 'gbk' codec can't decode bytes in position 8-9: illegal multibyte s
equence
这表明一个编解码转换失败。哪里?
这就是问题所在,我从'gbk'解码。字节是'gbk'编解码器。但上面的代码可以正确运行并打印原始字符。 – zoujyjs
编解码器变换必定发生在某处。这就是为什么我猜测印刷品完成了这项工作。查看我的更新。 – zoujyjs
@zoujyjs:嗯,我只能重复一遍自己:Python 2.x中的'print'会将你给它的字节发送给终端。然后你的终端将使用一些编解码器来解释它的输入,但它不在终端用它获得的字节做什么的Python控制之下。如果一切设置正确,'sys.stdout.encoding'应该显示你的终端使用什么编解码器(或假装使用)。 –