素材牛VIP会员
python2.7中如何打印中文变量
 Y2***Y2  分类:Python  人气:799  回帖:3  发布于6年前 收藏

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

讨论这个帖子(3)垃圾回帖将一律封号处理……

Lv4 码徒
风***2 站长 6年前#1

fp = open('xx.txt', 'w')
a = '这是一个中文字符串'
fp.write(a)
fp.close()

Lv5 码农
卡***丢 软件测试工程师 6年前#2
# -*- coding: utf-8 -*-

a = u"我是中文"
print a
print type(a)

输出
我是中文
<type 'unicode'>

header你写错了,如我所写的。你可以指定a的同时就指定其为unicode编码,不用使用的时候再做转换了

Lv4 码徒
ma***kk 交互设计师 6年前#3
h='汉字'
print h.decode('utf8')

输出:
汉字

h=u'汉字'
print h

输出:
汉字

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取