美文网首页
Python编码问题

Python编码问题

作者: Philosopher_ | 来源:发表于2017-09-29 10:53 被阅读0次

乱码根源:

  • 本地内存中编码方式都是“Unicode”,这是系统自动设定的!
  • 而在本地硬盘(保存到文件中)编码方式,是要设定的,而且为了“最高性价比”,多要设定为utf-8;
  • 网络中是各种各样的编码方式,拉取到本地,会自动“解释”为Unicode,在控制台输出,这些都还是在内存中;
  • 即使以UTF-8编码方式保存文件到本地,当读取的时候,本地也只会把文件当做基本的编码方式,如gbk,所以,仍然要编码为UTF-8,再交给本地自动转换为Unicode!

总结:

在计算机的世界,Unicode是“普通话”,其他的,像UTF-8、gbk什么的都是方言,而有的方言还解释不成普通话(因为有的方言,如gbk,太有“地方特色”,一些“俚语”在普通话里不能“写出来”,表达的含义,可意会不可言传 ),所以计算机会“说错话”,毕竟计算机还只是个机器,它只认普通话;同时,这个机器还蛮自动化的,会自动将方言转换为普通话,而在一些“认不出来”的情况下,就直接报错了,所以,如果出错的时候将自己想要讲的话转换(编译)为其它方言就行了,系统会再识别一次!


在Python中,有常用三套编码方式:

  • ASCII:一个字节(byte),也就是8个比特(二进制八位),只能代表128个英文字符
  • Unicode:两个字节(byte),及其特殊的会有三到四个,可以认为,这套编码方式包含了这个世界所有的字符
  • UTF-8 :可变长字节,也就是说,如果一个字符用一个字节就能表示(如英文),就用一个;而必须用三个字节才能表示(如中文)就用两个

三套编码方案的优缺点:

  • ASCII
    优点:比较节约资源,只用一个字节
    缺点:能表示的字符只有英文,所以其他国家人民就不能“说话了”!
  • Unicode
    优点:包含了这个世界上所有的字符(基本可以这么认为),每个人都有“说话的权利”
    缺点:太浪费资源,无论高矮胖瘦,都能装下,那这个“容器”就只能“将就”最高最胖的那个,所以“瘦子”就“节约”了好多空间 @_@
  • UTF-8
    优点:为每种语言“个性化定制”容器,性价比高,所以在网络传输中常用UTF-8
    缺点:。。。。。。

相关文章

  • python 编码问题总结记录

    Python2的默认编码ASCII,这是python编码问题的根本原因,可以想象,python3的编码问题肯定没有...

  • Python优秀博客笔记汇总(持续更新)

    还在烦编码问题? Python 编码错误的本质原因 Python 编码为什么那么蛋疼? Python3 是如何解决...

  • learning

    python在终端进行文件的运行在终端输入 python test.py 时间时间的转换 编码python编码问题

  • Python程序的中文在cmd中乱码问题

    刚开始学python遇到的问题,编码的问题。程序编码是UTF-8,cmd默认是GBK编码

  • 学习资料

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

  • 【python报错】UnicodeDecodeError: &#

    一、问题 二、原因 编码问题:整个Python文件的编码以及文件读取的编码 三、解决方案 1、编码设置 第一行没有...

  • python 编码问题

    以前python2.x版本的编码问题较多,所以这里只针对python3.x版本的问题进行讨论。 Unicode 编...

  • python编码问题

    1. python2中关于utf-8编码问题解决方法: 或者开头加# -*- coding: utf-8 -*-但...

  • Python编码问题

    默认编码 字符串 python2 文本字符串默认编码是ASCII,中文默认UTF-8python3 文本字符串默认...

  • python 编码问题

    1、一些概念 比特 / bit:计算机中最小的数据单位,是单个的二进制数值 0 或 1 字节 / byte:计算机...

网友评论

      本文标题:Python编码问题

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