python2.7中如何打印中文变量
高洛峰
高洛峰 2017-04-17 15:58:21
[Python讨论组]

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

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(3)
迷茫
h='汉字'
print h.decode('utf8')

输出:
汉字

h=u'汉字'
print h

输出:
汉字

大家讲道理
# -*- coding: utf-8 -*-

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

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

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

PHP中文网

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号