Python 中文编码

  1. 中文编码问题
  2. 中文输出问题

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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值