Python 中的编码问题

在python中遇到编码问题主要来自于ASCIIgbk两个方面。win中python为unicode 编码而控制台一般为gbk编码

ASCII

对于ASCII来说,是由于这一编码系统的显示导致其无法编码中文和特殊字符,所以需要在开始声明 使用utf-8编码.或者在代码开头著名_*_ coding:utf-8 _*_.
一些有用的命令,查询系统的代码情况:

import sys
sys.stdout.encoding  #输出系统编码 cp936
import local
locale.getdefaultlocale() #输出 ('zh_CN', 'cp936')

也可以利用系统模块来进行全局设置:

import sys
reload(sys);
sys.setdefaultencoding('utf-8')

gbk

gbk不能解码的问题主要来自于控制台输出为gbk默认编码,所以需要将待输出的string先encode(‘gbk’)以符合控制台的输出,这时候某些在python中的以unicode编码的字符无法用gbk表示,就会造成无法输出\x 0x0x的字样.

所以先要将unicode表示的字符串encode('gbk')交给print才能使用控制台默认编码gbk输出。

s = "some speciall characeres #$%^&*"
s.encode('gbk','ignore');  #ignore encode problems
print s

保存文件的时候调用的是python内部的写模块,所以gbk不会报错,windows cmd输出才会报错。在进行网络编程时,将get或者post等响应指定编码是很重要的 response.encoding = 'utf-8'

一个编码解码的流程:

字符|—–编码encode —-> |byte字节流| ———-解码decode——–>|字符。

其中编码和解码就是一种数据的转换方式,将字符转为一种字节的表示,包括ascii,gbk,unicode,不同编解码的规则就是不同的字符编码方案。

注:python3 默认编码为unicode,但win系统不是,造成ptint输出使用系统默认编码而报错。
一定要注意win系统的gbk编码不足以表示所有的字符,同时ascii编码也不够表示中文和特殊字符。接收字符的时候指定为unicode编码规避ascii问题,输出的时候根据系统来指定编码避免报错。
可以用UnicodeEncodeError#来捕捉编码异常
- python 中变量默认是utf-8编码,输出就需要用对应的decode('utf-8')来解码,或者使用输出对应编码来encode('gbk'), 终端输出包含了对byte的解码过程。

参考资料1,2,3,4

python中的编码问题相关推荐

  1. python安全编码问题_浅谈Python中的编码问题

    对于Python的初学者来说,编码问题相当令人头疼.本文就根据我在学习过程中遇到的问题简单谈一下Python中的编码.首先简单介绍一下几种常见的编码. 一.几种常见的字符编码 ASCII码 ASCII ...

  2. 浅谈Python中的编码规则

    注:本人用Python3.4作为学习版本,以下学习心得只适用于Python3.4. 之前拜读了金角大王Alex关于编码的解答,收获颇多.特此致谢,以下仅谈一谈作为一个初学者,对编码的理解. 我所了解的 ...

  3. python编码解码单词_在使用w2v时python中的编码问题

    我正在使用word2vec模型在python中编写我的第一个应用程序. 这里是我的简单的代码在使用w2v时python中的编码问题 import gensim, logging import sys ...

  4. python采用的编码是什么意思_深入浅出地,彻彻底底地理解Python中的编码

    python处理文本的功能非常强大,但是如果是初学者,没有搞清楚python中的编码机制,也经常会遇到乱码或者decode error.本文的目的是简明扼要地说明python的编码机制,并给出一些建议 ...

  5. 站长在线Python精讲:Python中字符串编码转换encode编码和decode解码详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<Python中字符串编码转换:encode编码和decode解码详解>.本知识点主要内容有:常用编码简介.使用encode( ...

  6. 编码以及Python中的编码

    编码 不管是哪种语言,在学习的时候,只要涉及到中文,多多少少都会遇到一些编码问题.然而,说实话,作为一个英语水平没有那么专业的中国人,中文是必不可少的.所以,了解编码以及解码就变得非常重要.下面是从各 ...

  7. 有了这篇文章, Python 中的编码不再是噩梦

    有了这篇文章, Python 中的编码不再是噩梦 Python 中编码问题,一直是很多 Python 开发者的噩梦,尽管你是工作多年的 Python 开发者,也肯定会经常遇到令人神烦的编码问题,好不容 ...

  8. python中字符编码使用_python中字符编码是什么?如何转换字符?

    屏幕前我们看到的文字,在计算机中也是这样表示吗?事实上,我们所有的信息电脑是无法直接理解的,同样我们所要表达的信息,计算机也不能看懂.这就需要架起一个理解的桥梁,也就是编码帮助我们相互之间进行翻译.今 ...

  9. python 编码声明位置,python中的编码声明

    python中的第一行,目的就是指出,你想要你的这个文件中的代码用什么可执行程序去运行它,就这么简单 #!/usr/bin/python 相当于写死了 python 路径(是告诉OS执行这个py时,调 ...

最新文章

  1. 解决plsql中文显示问号(???)问题
  2. 生成器、迭代器的区别?
  3. mysql计算两gps坐标的距离_mysql 计算两坐标间的距离
  4. 关于tomcat无法启动问题详解
  5. Android学习笔记:ScrollView卷轴视图
  6. Wyn Enterprise 核心功能:系统集成
  7. [翻译] 使用 Serverless 和 .NET Core 构建飞速发展的架构
  8. Servlet之Tomcat配置与启动(一)
  9. ZooKeeper 保证数据一致性
  10. linux系统生成的新文件是什么编码的,Linux系统的默认编码怎样设置?
  11. windows删除文件c语言函数,c rename()函数是否删除文件?
  12. 在阿里巴巴如何管理代码分支?
  13. lcd像素点密度_常见液晶显示分辨率对应像素密度
  14. 金蝶/K3Wise 月末结账时候提示:违反违反了PRIMARYKEY约束,PK_POZnvBal,不能在对象POinvBal中插入重复键
  15. android学习记录(3)查看Device File Explore
  16. 优秀的图文识别开源项目PandaOCR
  17. bootstrap 图片上传框架
  18. 《游戏引擎浅入浅出》
  19. DEFERRED_SEGMENT_CREATION参数
  20. java走通路游戏_《Pathway/通路/路径》v1.1.6|官方简体中文

热门文章

  1. linux那些事之LRU(4)
  2. Opencv打印显示Mat方法
  3. torch.mul() 和 torch.mm() 区别【矩阵a和b对应位相乘/矩阵相乘】
  4. 操作系统(李治军) L10用户级线程
  5. [有限元] 面积坐标的幂函数在三角形单元,三角形环单元上的积分公式和体积坐标的幂函数在常应变四面体单元上的积分公式
  6. phpcms留言板功能的实现
  7. 本地运行vue.js项目,如何更改调试的默认端口?
  8. deepnode处理过的图片_教你用PS快速修复图片脏乱和瑕疵,快来一起学习吧!
  9. 三勾商城是开发友好的微信小程序商城,框架支持SAAS,支持发布 iOS + Android + 公众号 + H5 + 各种小程序
  10. CRMEB v3.2微信小程序商城前端