Python 2.x中常见字符编码和解码方面的错误及其解决办法

8 篇文章 0 订阅
2 篇文章 0 订阅

Python 2.x中的字符编码,设计的的确不好,导致初学者,甚至是即使用Python很长时间的人,都会经常遇到字符编解码方面的错误。

下面就把一些常见情,尽量的都整理出来,并给出相应的解决办法。


看此文之前

Python中字符编码所涉及的背后逻辑(从你输入字符,到终端显示字符的背后过程)

在去了解Python编码解码之前,还有个更加重要,但是很多时候却被其他解释相关知识的人所忽略的问题,那就是:

对于Python中字符串,输入输出的背后逻辑。

即,知其所以然。

 

此处就简单介绍一下,在Python中,从你所输入的字符串,到显示出字符串,这背后的过程是什么样的。

只有了解了这个大概的过程,和背后的逻辑,你才能真正理解后面的所解释的,字符串编码解码方面的错误,以及如何解决这样的错误。

 

对于你

你只是看到的是:

  • 你输入了字符串
    • 不论是从Python的IDLE中输入的
    • 还是写入到Python文件中的
  • 然后你去运行的对应代码,该Python代码,经过Python系统,(此处及之后,我称其为Python解析器),的处理
  • 使得你可以看到最终所输出的字符串
    • 不论是在Python的IDLE中看到的
    • 还是在windows的cmd中看到的。

 

对于Python解析器

而Python解析器所干的事情,就是:

  1. Python解析器,根据当前的所用的字符串编码类型
    • 此字符串编码类型,是你自己所设置的
      • 不论是在Python的IDLE中,还是Python文件中
      • 都是你自己显示指定对应的编码类型的

    • 当然你没显示的指定的话,那就用默认的配置
      • 如果是Python的IDLE,如果你没修改defaultencoding,那么就使用默认的字符编码
        • 可以通过sys.getdefaultencoding()而获得,比如此处获得是:ascii
        • idle sys.getdefaultencoding
      • 如果是Python文件,如果你没声明文件编码,则使用默认的编码:UTF-8
        • 常见的做法是指定为对应的UTF-8类型:# -*- coding: utf-8 -*-
          • 相关内容,不了解的可参考:【整理】关于Python脚本开头两行的:#!/usr/bin/python和# -*- coding: utf-8 -*-的作用 – 指定文件编码类型



更多详细信息:https://www.crifan.com/summary_python_2_x_common_string_encode_decode_error_reason_and_solution/


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值