zoukankan      html  css  js  c++  java
  • 07 Python编码问题

    17) 编码

    18) Python3的执行过程

    19) 常见编码错误原因

    20) 后附一部分编码详细信息(个人总结,有误望指正)

        想了解Python3的编码更细致的讲解请参考大王的文章

    http://www.cnblogs.com/alex3714/articles/7550940.html

    17,编码

           Python2默认的文件编码是,ASCII

           所以默认是不支持中文,若想支持中文,要在文件顶行写上

          #! -*- coding: utf-8 -*-

          #! encoding: utf-8

    Python3默认的文件编码是,UTF-8

    Windows中文版默认编码是,GBK

    Linux / Mac OS默认编码是,UTF-8

    18,Python3 的执行过程

        1,解释器找到代码文件,把代码字符串按文件头定义的编码加载到内存,转成Unicode

           (可以把源文件看成一个很长的字符串)

        2,把代码字符串按照语法规则进行语法分析

        3,所有的变量字符都会以Unicode编码声明

    Note

    Python3源文件默认文件编码UTF-8

    Python3解释器默认编码Unicode

    Python2源文件默认文件编码ASCII

    Python2解释器默认编码ASCII

          在Python3中如果不使用默认编码,记得一定要在文件头声明;在PyCharm改没用

    python3中:默认文件编码为UTF-8

    加载到内存后成了Unicode

    (其实不管声明文件编码为什么,到内存中都会转成Unicode,仅限Python3)

    在Windows终端下执行,正常显示

    虽然Windows CMD的编码是GBK,

    但是Unicode的作用其中之一是有跟全球所有国家语言编码的映射关系

    python2中:默认文件编码为ascii

    加载到内存后还是ascii,

    就算你声明了编码是utf-8,到内存后依然是utf-8,

    (声明什么,内存中就是什么) 所以,

    在Windows终端下执行,显示不正常

    因为Windows CMD的编码是GBK,

    GBK处理不了utf-8的编码

    只有两种途径才能正常显示:

    1,文件头声明编码为gbk

    2,字符串显示地转成Unicode

    19,常见编码错误的原因:

        Python解释器的默认编码

       Python源文件的文件编码

       Terminal使用的编码

       操作系统的语言设置

     

     

  • 相关阅读:
    反射详解六
    反射详解五
    反射详解四
    反射详解三
    反射详解二
    mysql行转列
    mysql增删改查
    视图的使用
    js过滤
    错误集
  • 原文地址:https://www.cnblogs.com/hardy9sap/p/10602734.html
Copyright © 2011-2022 走看看