该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

对于Python解析器

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

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 -*-的作用 – 指定文件编码类型

去执行你的Python代码

其中,很常见的几种动作是:

打印print对应的所获得的字符

对于字符串打印,Python的逻辑:

如果是Unicode字符串,则可以,自动地,编码为对应的终端所用编码,然后正确的显示出来

比如unicode的字符串,输出到windows的默认编码为GBK的cmd中,则Python可以自动将Unicode编码为GBK,然后输出到cmd中

个别特殊情况,也会出错:

当此unicode字符串中包含某特殊字符,而目标终端的编码**中,没有此字符,则很明显也是无法实现将Unicode编码为对应的特定编码的字符串,无法正确显示的

如果是某种编码类型的str,则需要该str的编码类型,和目标终端编码匹配

比如GBK的字符串,输出到windows的默认编码为GBK的cmd,则是可以正常输出的

此处后来经过代码测试,就发现一个有趣或者说诡异的问题,虽然我们python文件声明的UTF-8编码,但是实际上实际上是用GBK编码,而此时,文件中的字符串,很明显是用GBK存储的,所以,将此GBK字符,输出到GBK的cmd中,是可以正常输出的。即,此处字符串的类型,很明显只和文件所用的实际编码有关,而和文件所声明的代码无关。

如果是UTF-8的字符串,输出到windows的默认编码为GBK的cmd,就会出错

对相应的字符,进行编码(为某种特定类型的字符str),或解码(为对应的unicode类型的字符)

比如将当前的某种编码的字符串,解码为Unicode字符串

很明显,也是要保证,你字符串本身的编码和所指定的编码,两者之间要一致的

比如:decodedUnicode = someUtf8Str.decode("UTF-8")

而如果用这样的:decodedUnicode = someGbkStr.decode("UTF-8"),那就会出现错误

如何解决python中编码错误的问题_【总结】Python 2.x中常见字符编码和解码方面的错误及其解决办法...相关推荐

  1. python2发送http不编码_[转]Python 2.x中常见字符编码和解码方面的错误及其解决办法...

    Python 2.x中的字符编码,设计的的确不好,导致初学者,甚至是即使用Python很长时间的人,都会经常遇到字符编解码方面的错误. 下面就把一些常见情,尽量的都整理出来,并给出相应的解决办法. 看 ...

  2. (转载)Python常见字符编码间的转换

    Python常见字符编码间的转换 主要内容:     1.Unicode 和 UTF-8的爱恨纠葛     2.字符在硬盘上的存储     3.编码的转换     4.验证编码是否转换正确     5 ...

  3. python转换字符编码_转:Python常见字符编码及其之间的转换

    一.Python常见字符编码 字符编码的常用种类介绍 第一种:ASCII码 ASCII(American Standard Code for Information Interchange,美国信息交 ...

  4. Python常见字符编码及其之间的转换

    参考:Python常见字符编码 + Python常见字符编码间的转换 一.Python常见字符编码 字符编码的常用种类介绍 第一种:ASCII码 ASCII(American Standard Cod ...

  5. python用gbk编码自己的名字_基于python的汉字转GBK码

    说明: 今天想用python调用百度框计算的搜过结果,看到了URL里面的汉字用GBK编码,虽然可以直接在URL里面加入中文,之前也做过一个简体字转GBK码的python函数,但还是略嫌麻烦,今天改了一 ...

  6. 常见字符编码 java

    常见字符编码 java

  7. 关于python字符编码以下选项中错误的是_关于Python文件打开模式的描述,以下选项中错误的是...

    [单选题]下列Python保留字中,不用于表示分支结构的是 [单选题]下列哪项不是python中文件的读取操作 [单选题]以下程序的输出结果是: s='' ls = [1,2,3,4] for l i ...

  8. 关于python字符编码以下选项中错误的是_关于 Python 字符编码,以下选项中描述错误的是...

    [单选题]下面代码的输出结果是: a = 20 b = a | 3 a &= 7 print(b ,end=",") print(a) [单选题]Python 3.x 版本 ...

  9. python中二进制和文本不同_关于Python字符编码与二进制不得不说的一些事

    二进制 核心思想: 冯诺依曼 + 图灵机 电如何表示状态,才能稳定? 计算机开始设计的时候并不是考虑简单,而是考虑能自动完成任务与结果的可靠性, 简单始终是建立再稳定.可靠基础上 经过尝试10进制,但 ...

最新文章

  1. 世界机器人大会|人工智能VS人类
  2. angular4 下载文件 Excel zip包
  3. day31 logging 日志模块
  4. linux 多线程的基础 交通信号灯学习笔记 :信号详解
  5. dubbo启动时检查服务
  6. CVPR2019 | AlphaPose升级!上交大开源密集人群姿态估计代码
  7. std::list 循环删除指针_数据结构_006_线性表_循环链表
  8. SIFT算法详解(附有完整代码)
  9. 判断浏览器版本,当浏览器版本过低时提示升级浏览器,不显示原来页面内容
  10. 超级计算机预测未来,超级计算机预测未来
  11. Science子刊:母亲的身体气味增强了婴儿和成人的脑-脑同步
  12. 163邮箱邮件被退回,什么企业邮箱可以接收国外邮件?
  13. Vue Markdown编辑器
  14. 未来的事业计算机工程师英语作文,英语作文:我未来的事业 My Future Career
  15. java excel 饼图_Java 在Excel中添加分离型饼图、环形图
  16. 搞 Java 的年薪 40W 是什么水平?
  17. vim下区块的复制与黏贴
  18. 女人一生中重要的三件事。
  19. 初级软件测试面试前需要做什么准备?面试题可以去哪里找?
  20. 是男人就下100层【第一层】——高仿微信界面(3)

热门文章

  1. jedis与redis_Redis与Jedis排序
  2. Javascript中的AES加密和Java中的解密
  3. javabeans_膨胀的JavaBeans –不要在您的API中添加“ Getters”
  4. 打破冷漠僵局文章_研究僵局–第2部分
  5. 关于ANTLR的通用库的需求:使用反射来构建元模型
  6. 使用不可变对象创建值对象
  7. spring mvc拦截器_Spring MVC拦截器示例
  8. 如何在JavaServer Pages中使用Salesforce REST API
  9. 使用CDI的InjectionPoint注入配置值
  10. Java泛型中的子类型化