我们都是知道,要打印中文,需要设定字符编码,一般就是代码前面加上:#encoing:utf-8/gbk 诸如此类,然后打印时,特别在中文字符串前,标注u
也就是:
#encoding:utf-8
print u"中文"
但是我现在有一个字符串:
#encoding:utf-8
a = "这是一个中文字符串"
print u'a'
//=>a
也就是如果包裹起来,a会被当成字符串来出来,而不是变量,请教如何打印中文变量呢?
另外,当我尝试把这个字符串写入到文件里,会提示:
TypeError: expected a character buffer object
请问这又是怎么回事呢?
补充:当我把要写入的中文字符,转换为str时,又能写入了,是一堆ascii编码?
conn.write(str(a))
//=>r\n\xc8\xcb\xc3\xf1\xd2\xf8\xd0\xd0\xc0\xe8\xc6\xbd\xd6\xa7\xd0\xd0\xc8\xab\xb7\xbd\x
fp = open('xx.txt', 'w')
a = '这是一个中文字符串'
fp.write(a)
fp.close()
h='汉字'
print h.decode('utf8')
输出:
汉字
h=u'汉字'
print h
输出:
汉字
# -*- coding: utf-8 -*-
a = u"我是中文"
print a
print type(a)
输出
我是中文
<type 'unicode'>
header你写错了,如我所写的。你可以指定a的同时就指定其为unicode编码,不用使用的时候再做转换了