python中文解码_[Python]输出中文的方法,搞懂编码encode和解码decode

本文介绍了Python中处理中文编码的问题,包括在脚本中添加编码声明、理解编码与解码的过程、处理Unicode和str的转换、解决在list和dict中包含中文的显示问题,以及如何处理不同编码类型的数据。通过实例展示了encode和decode的使用,以及处理UnicodeDecodeError的常见方法。
摘要由CSDN通过智能技术生成

字符串编码解码这些知识我有了解一些,因为刚接触python,这些东西在python中的表现就有点陌生了,这里记录下遇到的相关实例供学习参考。

问题1

首先,当我们编辑py脚本时,如果直接输出中文,会报错:

#!/usr/bin/python

print '你好'

'''

SyntaxError: Non-ASCII character '\xe4' in file xxx, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

'''

可以看到,错误信息:非ASCII码出现,但是没有编码声明,编译器不识别。

这里,添加一段声明即可实现:

#-*- coding: utf-8

这是什么原因呢? 我们都知道,计算机识别的语言都是0/1二进制格式,我们需要通过进行字符编码转换处理后再丢给计算机让其能识别我们的输入内容,因此才会报错没有编码声明。

在python 中,对于str,选用Unicode作为其默认编码字符集,utf-8就是对unicode进行编码的一种方式。

这个引用的意思就是说表明该文件的编码类型是utf-8编码类型。

当取回来的数据与你当前脚本中声明的编码不一致时就要做编码转换

在编码转换时首先要将该数据以自身编码的格式换成unicode码,再将这个unicode按utf8编码

Python 里面的编码和解码也就是 unicode 和 str 这两种形式的相互转化。编码encode是 unicode -> str,解码decode就是 str -> unicode。

s = '你好啊'

print type(s.decode('utf-8'))

print type(s.decode('utf-8').encode('utf-8'))

'''

'''

python解析器需通过声明utf8编码类型,之后对其进行先编码后解码转成unicode。整个过程如下:

​计算机 encodedecode

​CLI: str --- >str(Unicode)

再举个例子解释下上面说的内容,下面会报错:

UnicodeDecodeError: 'ascii' codec can't

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值