美文网首页程序员
说清楚python的字符编码问题

说清楚python的字符编码问题

作者: 攻城大师master | 来源:发表于2018-03-20 23:05 被阅读0次

编码格式

目前我们在用python开发项目中经常使用的编码格式是gbk和utf-8.但是python内部为了效率都是用的unicode的双字节编码格式.
为什么会有这个几个的编码格式?

  • ASCII码为了解决输入英文的问题
  • 处理中文用GBK
  • 处理世界各国语言用unicode
  • 减少unicode字符长度和传输效率在unicode的基础上产生了utf-8

为什么在要文件头加上类似#encode这样的一行

用#encode的原因是告诉编译器我们这个文件是需要用什么解码器器来编解码.

  • 如果你声明为#encode=utf8,你源文件也是utf-8,python解释器就能解释你的源码
  • 如果你声明为#encode=utf8,你源文件用的gbk,python会直接抛出异常,因为有些gbk编码在用utf8解释器解释不了
  • 如果你声明为#encode=gbk,你源文件也是gbk,源代码是可以解析的
  • 如果你声明为#encode=gbk,你源文件用的是utf8,源代码会解析成乱码

为什么有的文件用u''这样来表示字符串

python中在字符串前面加上u即(u'')跟文件的物理编码没有关系.只是加载到内存中自动用unicode编码来表示.原理是python先将源文件中的源码用#encode=utf8 这个声明中的编码去解析,解释逻辑根据上面中的情况,如果解析成功了,会自动转乘unicode编码保存在内存中.

以r开头的字符,常用于正则表达式,对应着re模块。

为什么我的文件格式和文件头是对应的还是会出现乱码?

最终字符能不能正常显示还要看控制台用的是什么编码格式.正常应该用编码格式和解码格式还有控制台的显示的编码格式统一

python默认的编码格式sys.getdefaultencoding()可以获取,多数情况是ascii码.

最后

有什么问题加微博讨论van1988ch

相关文章

  • 说清楚python的字符编码问题

    编码格式 目前我们在用python开发项目中经常使用的编码格式是gbk和utf-8.但是python内部为了效率都...

  • 学习资料

    简明python教程Python2字符编码问题小结stackoverflow about python

  • python 字符串前加u

    python中文编码问题,字符串前面加u

  • python 高级方法

    Python的字符串类型 字符编码方法 查看Python中的字符串编码名称,查看系统的编码 源文件字符集编码声明:...

  • Python字符编码问题

    当我还是编程小白的时候,编码问题一直困扰了我很久,一碰到编码异常报错,就各种百度谷歌,一个个试别人的方法直到解决问...

  • python编码

    python编码 python编码简介 字符串在Python内部的表示是unicode编码,因此,在做编码转换时,...

  • Python的字符编码问题

    https://blog.csdn.net/apache0554/article/details/53889253...

  • json与python

    Python 对象编码成 JSON 字符串 json.dumps 用于将 Python 对象编码成 JSON 字符...

  • Python中的字符串编码

    Python中的字符串编码 定义字符串 Python 中存在两种编码方式的字符串:ASCII 和 Unicode。...

  • python学习随便

    Python学习__字符串编码 对于单个字符的编码,Python提供了ord()函数获取字符的整数表示,chr()...

网友评论

    本文标题:说清楚python的字符编码问题

    本文链接:https://www.haomeiwen.com/subject/oxiiqftx.html