Python 中文编码

来源:互联网 发布:快压软件官方下载 编辑:程序博客网 时间:2024/06/05 15:50
  1. 中文编码问题
  2. 中文输出问题

1.中文编码问题
<1>首先写一个最简单的python代码

#!/usr/bin/pythonif __name__ == "__main__":    print "hello word"

打印结果:hello word

<2>但是,要打印中文,Python 文件中如果未指定编码,Python默认编码格式是 ASCII 格式,在没修改编码格式时无法正确打印汉字,所以在读取中文时会报错。

#!/usr/bin/pythonif __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-8if __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-8import jsonif __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。

原创粉丝点击