zoukankan      html  css  js  c++  java
  • PYTHON-字符编码

    day07字符编码复习:
    1. 字符编码:字符编码就是字符与数字的对应关系表

    计算机要想工作必须通电,即用‘电’驱使计算机干活,也就是说‘电’的特性决定了计算机的特性。
    电的特性即高低电平(人类从逻辑上将二进制数1对应高电平,二进制数0对应低电平),
    关于磁盘的磁特性也是同样的道理。结论:计算机只认识数字

      很明显,我们平时在使用计算机时,用的都是人类能读懂的字符
    (用高级语言编程的结果也无非是在文件内写了一堆字符),如何能让计算机读懂人类的字符?

      必须经过一个过程:
      #字符--------(翻译过程)------->数字
      #这个过程实际就是一个字符如何对应一个特定数字的标准,这个标准称之为字符编码


    ASCII:只能识别英文字符,1Bytes=1英文字符
    GBK:可以识别中文字符与英文字符串,2Bytes=1中文字符 1Bytes=1英文字符
    Unicode
    1. 能够兼容万国字符
    2. 与其他任意编码的二进制数都有映射关系
    unicode格式------编码encode------->GBK格式的二进制数
    GBK格式的二进制数-------解码decode------->unicode格式
    UTF-8:unicode的转换格式,3Bytes=1中文字符 1Bytes=1英文字符

    2. 在python中字符编码的应用:
    1. 保证执行python程序的前两个阶段不乱码,加文件头
    在文件的首行写入: #coding:文件存的时候用的编码
    2. 字符串类型演变:
    python2有两种"字符串"相关类型:
    种类一:#coding:gbk,x='上' # '上'存成了GBK编码后的二进制
    种类二:x=u'上' # '上'存成了unicode编码后的二进制

    python3有两种"字符串"相关类型
    x='上' # '上'存成了unicode编码后的二进制
    res=x.encode('gbk') #gbk格式的二进制

    3. 总结:
    1. 保证不乱码的核心法则:以什么编码存的就应该以什么编码取
    2. 在python2中定义字符串,应该加上前缀u,比如x=u'你好'
    3. 在编写python文件时,必须加文件头:#coding:文件存的时候用的编码

    英文字节 中文字节
    unicode 2 2
    utf-8 1 3
    gbk 1 2
    ascii 1
  • 相关阅读:
    洛谷 P2700 逐个击破
    洛谷 P1503 鬼子进村
    洛谷 P1556 幸福的路
    洛谷 P1490 买蛋糕
    洛谷 P2507 [SCOI2008]配对
    code vs 3305 水果姐逛水果街Ⅱ
    通过idea远程调试
    【Cocos2d-x JavaScript Binding】
    ☀【SeaJS】SeaJS Grunt构建
    -_-#【Better Code】throttle / debounce
  • 原文地址:https://www.cnblogs.com/du-jun/p/9670818.html
Copyright © 2011-2022 走看看