- 中文编码问题
- 中文输出问题
1.中文编码问题
<1>首先写一个最简单的python代码
#!/usr/bin/python
if __name__ == "__main__":
print "hello word"
打印结果:hello word
<2>但是,要打印中文,Python 文件中如果未指定编码,Python默认编码格式是 ASCII 格式,在没修改编码格式时无法正确打印汉字,所以在读取中文时会报错。
#!/usr/bin/python
if __name__ == "__main__":
print "你好,世界"
报错:SyntaxError: Non-ASCII character ‘\xe4’ in file test1.py on line 5, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
<3>解决方法为只要在文件开头加入 # -- coding: UTF-8 -- 或者 #coding=utf-8 就行了
#!/usr/bin/python
# -*- coding: UTF-8 -*-
if __name__ == "__main__":
print "你好 世界"
打印:你好 世界
2.中文输出问题
<1>保存在列表、元祖、字典中的汉字直接打印,只会打印其utf8编码。
#!/usr/bin/python
#coding=utf-8
if __name__ == "__main__":
print "你好 世界"
str1 = "这里是字符串1"
print str1
type1 = ("这里是元祖","这里是元祖的第二个元素")
print type1
list1 = ["这里是列表","列表的第二个元素"]
print list1
dict1 = {"key1":"这里是字典"}
print dict1
打印结果:
你好 世界
这里是字符串1
('\xe8\xbf\x99\xe9\x87\x8c\xe6\x98\xaf\xe5\x85\x83\xe7\xa5\x96', '\xe8\xbf\x99\xe9\x87\x8c\xe6\x98\xaf\xe5\x85\x83\xe7\xa5\x96\xe7\x9a\x84\xe7\xac\xac\xe4\xba\x8c\xe4\xb8\xaa\xe5\x85\x83\xe7\xb4\xa0')
['\xe8\xbf\x99\xe9\x87\x8c\xe6\x98\xaf\xe5\x88\x97\xe8\xa1\xa8', '\xe5\x88\x97\xe8\xa1\xa8\xe7\x9a\x84\xe7\xac\xac\xe4\xba\x8c\xe4\xb8\xaa\xe5\x85\x83\xe7\xb4\xa0']
{'key1': '\xe8\xbf\x99\xe9\x87\x8c\xe6\x98\xaf\xe5\xad\x97\xe5\x85\xb8'}
<2>使用json格式转换,解读其编码并输出汉字:
#!/usr/bin/python
#coding=utf-8
import json
if __name__ == "__main__":
print "你好 世界"
str1 = "这里是字符串1"
print str1
type1 = ("这里是元祖","这里是元祖的第二个元素")
type1 = json.dumps(type1,encoding='UTF-8', ensure_ascii=False)
print type1
list1 = ["这里是列表","列表的第二个元素"]
list1 = json.dumps(list1,encoding='UTF-8', ensure_ascii=False)
print list1
dict1 = {"key1":"这里是字典"}
dict1 = json.dumps(dict1,encoding='UTF-8', ensure_ascii=False)
print dict1
打印结果:
你好 世界
这里是字符串1
["这里是元祖", "这里是元祖的第二个元素"]
["这里是列表", "列表的第二个元素"]
{"key1": "这里是字典"}
3.编辑器中的编码设置
这一部分参考:http://www.runoob.com/python/python-chinese-encoding.html
<1>Python3版本 源码文件默认使用utf-8编码,所以可以正常解析中文,不需要指定 UTF-8 编码。
<2>使用编辑器,同时需要设置 py 文件存储的格式为 UTF-8,否则会出现错误:
Pycharm 设置步骤:
进入 file > Settings,在输入框搜索 encoding。
找到 Editor > File encodings,将 IDE Encoding 和 Project Encoding 设置为utf-8。