python2.7中如何打印中文变量

我们都是知道,要打印中文,需要设定字符编码,一般就是代码前面加上:#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
查看回复