扫码关注官方订阅号
foo = ['abc', '你好']
python2.7 下,
print foo
中文显示的编码, 必须要用下面的方式输出才能显示中文。
for f in foo: print f
python3.0以上没有这些问题。哪里有变化?有没有什么办法在2.7的情况下, 我在输出list的时候直接输出的就是中文呢?
认证0级讲师
Python 3比2.x对unicode支持更好一些,但是楼主直接print foo完全没有意义啊,这个只是象征性的print出foo序列化的结果,内部实现时可能也是遍历输出的。 如果你要输出序列化结果,不如直接写个方法,性能应该也没差
#!/usr/bin/python # -*- coding: utf-8 -*- def printSerilize(foo): print "[", for f in foo: print "\'" + f + "\', ", print "]", foo = ['abc', '你好'] printSerilize(foo)
py3k的字符串只有str和unicode(binary)和两种 默认是utf8编码 所以print一个list用到的str()也是用utf8解码 py27需要各种decode encode才能编码解码
最简单的办法就是:
In [1]: foo = ['abc', '你好'] In [2]: print " ".join(foo)
import json print json.dumps(dict_list, encoding = 'UTF-8', ensure_ascii = False)
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
Python 3比2.x对unicode支持更好一些,但是楼主直接print foo完全没有意义啊,这个只是象征性的print出foo序列化的结果,内部实现时可能也是遍历输出的。
如果你要输出序列化结果,不如直接写个方法,性能应该也没差
py3k的字符串只有str和unicode(binary)和两种 默认是utf8编码 所以print一个list用到的str()也是用utf8解码
py27需要各种decode encode才能编码解码
最简单的办法就是: