zoukankan      html  css  js  c++  java
  • python

    Python 中文编码

       为了处理汉字,程序员设计了用于简体中文的GB2312和用于繁体中文的big5.
          GB2312(1980年)一共收录了7445个字符,包括6763个汉子和682个其他符号。汉字区的内码范围高字节从B0-E7,低字节A1-FE,占用的码位是72*94=6768.其中5个空位是D7FA-D7EF。
               GB2312支持的汉字太少。1995年的汉字扩展规范GBK1.0收录了21886个符号,它分为汉字去和图形符号区。汉字区包括21003个字符,2000年的GB18030是取代GBK1.0的正式国家标准。该标准收录了27484个汉字,同时还收录了藏文、蒙文、维吾尔文扥更主要的少数名族文字。现在的PC平台必须支持GB18030,对嵌入式产品暂不做要求。所以手机、MP3一般支持GB2312.
               从ASCII、GB2312、GBK到GB18030,这些编码方法是向下兼容的,即同一个字符在这些方案中总是有相同的编码,后面的标准支持更多的字符。这些编码中,英文和中文可以统一地处理,区分中文编码的方法是高字节的最高位不为0.按照程序员的称呼,GB2312、GBK到GB18030都属于双字节字符集(DBCS)
              有的中文windows的缺省内码还是GBK,可以通过GB18030升级包升级到GB118030,不过GB18030相对GBK增加的字符,普通人很难用到,通常我们还是用GBK只带中文windows内码。


    关于ASCII码/unicode/utf-8
        显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代码所有字符和符号的编码即:Unicode
     
        unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码、unicode是为了解决传统的字符编码方法的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由16位表示(2个字节)即2**16 = 65536
     
        UTF-8 是对unicode编码的压缩和优化,他不在使用最少使用2个字节,而是将所有的字符和符号进行分类ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存。
        所以,python解释器在加载.py文件中的代码时,会对内容进行编码(默认ascill)
     
    时间节点:
    ASCII 255 1bytes
       ————1980 GB2312   7XXX
       ------------1995 GBK1.0   2w+
       -------------2000  GB18030  27xxxx
       -------------UNICODE  2bytes
       -------------utf-8   en:1byte, zh :3btes

  • 相关阅读:
    WebService
    JavaMail
    ssh框架整合
    CSS3初步
    SpringMVC 文件上传及下载
    Java多线程
    SpringMVC 数据校验
    初始化参数绑定——日期格式
    SpringMVC入门
    Quartz
  • 原文地址:https://www.cnblogs.com/Anec/p/10208756.html
Copyright © 2011-2022 走看看