如何解决python中编码错误的问题_【总结】Python 2.x中常见字符编码和解码方面的错误及其解决办法...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
对于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中常见字符编码和解码方面的错误及其解决办法...相关推荐
- python2发送http不编码_[转]Python 2.x中常见字符编码和解码方面的错误及其解决办法...
Python 2.x中的字符编码,设计的的确不好,导致初学者,甚至是即使用Python很长时间的人,都会经常遇到字符编解码方面的错误. 下面就把一些常见情,尽量的都整理出来,并给出相应的解决办法. 看 ...
- (转载)Python常见字符编码间的转换
Python常见字符编码间的转换 主要内容: 1.Unicode 和 UTF-8的爱恨纠葛 2.字符在硬盘上的存储 3.编码的转换 4.验证编码是否转换正确 5 ...
- python转换字符编码_转:Python常见字符编码及其之间的转换
一.Python常见字符编码 字符编码的常用种类介绍 第一种:ASCII码 ASCII(American Standard Code for Information Interchange,美国信息交 ...
- Python常见字符编码及其之间的转换
参考:Python常见字符编码 + Python常见字符编码间的转换 一.Python常见字符编码 字符编码的常用种类介绍 第一种:ASCII码 ASCII(American Standard Cod ...
- python用gbk编码自己的名字_基于python的汉字转GBK码
说明: 今天想用python调用百度框计算的搜过结果,看到了URL里面的汉字用GBK编码,虽然可以直接在URL里面加入中文,之前也做过一个简体字转GBK码的python函数,但还是略嫌麻烦,今天改了一 ...
- 常见字符编码 java
常见字符编码 java
- 关于python字符编码以下选项中错误的是_关于Python文件打开模式的描述,以下选项中错误的是...
[单选题]下列Python保留字中,不用于表示分支结构的是 [单选题]下列哪项不是python中文件的读取操作 [单选题]以下程序的输出结果是: s='' ls = [1,2,3,4] for l i ...
- 关于python字符编码以下选项中错误的是_关于 Python 字符编码,以下选项中描述错误的是...
[单选题]下面代码的输出结果是: a = 20 b = a | 3 a &= 7 print(b ,end=",") print(a) [单选题]Python 3.x 版本 ...
- python中二进制和文本不同_关于Python字符编码与二进制不得不说的一些事
二进制 核心思想: 冯诺依曼 + 图灵机 电如何表示状态,才能稳定? 计算机开始设计的时候并不是考虑简单,而是考虑能自动完成任务与结果的可靠性, 简单始终是建立再稳定.可靠基础上 经过尝试10进制,但 ...
最新文章
- 世界机器人大会|人工智能VS人类
- angular4 下载文件 Excel zip包
- day31 logging 日志模块
- linux 多线程的基础 交通信号灯学习笔记 :信号详解
- dubbo启动时检查服务
- CVPR2019 | AlphaPose升级!上交大开源密集人群姿态估计代码
- std::list 循环删除指针_数据结构_006_线性表_循环链表
- SIFT算法详解(附有完整代码)
- 判断浏览器版本,当浏览器版本过低时提示升级浏览器,不显示原来页面内容
- 超级计算机预测未来,超级计算机预测未来
- Science子刊:母亲的身体气味增强了婴儿和成人的脑-脑同步
- 163邮箱邮件被退回,什么企业邮箱可以接收国外邮件?
- Vue Markdown编辑器
- 未来的事业计算机工程师英语作文,英语作文:我未来的事业 My Future Career
- java excel 饼图_Java 在Excel中添加分离型饼图、环形图
- 搞 Java 的年薪 40W 是什么水平?
- vim下区块的复制与黏贴
- 女人一生中重要的三件事。
- 初级软件测试面试前需要做什么准备?面试题可以去哪里找?
- 是男人就下100层【第一层】——高仿微信界面(3)
热门文章
- jedis与redis_Redis与Jedis排序
- Javascript中的AES加密和Java中的解密
- javabeans_膨胀的JavaBeans –不要在您的API中添加“ Getters”
- 打破冷漠僵局文章_研究僵局–第2部分
- 关于ANTLR的通用库的需求:使用反射来构建元模型
- 使用不可变对象创建值对象
- spring mvc拦截器_Spring MVC拦截器示例
- 如何在JavaServer Pages中使用Salesforce REST API
- 使用CDI的InjectionPoint注入配置值
- Java泛型中的子类型化