翼度科技»论坛 编程开发 python 查看内容

字符编码

9

主题

9

帖子

27

积分

新手上路

Rank: 1

积分
27
字符编码

1.字符编码简介


  • 字符编码只针对文本文件
  • 计算机内部存储数据的本质是二进制 也就是计算机只认识0和1
  • 我们打出来的字能被计算机识别是因为中间有一层转换关系>>字符编码表、
2.字符编码发展的三个阶段


  • 阶段一:一家独大
    由于计算机是美国人发明的 为了可以让计算机识别英文 所以发明了ASCII码
    ASCII码中记录了英文字母跟数字的对应关系>>用1字节来表示一个英文字符
    A-Z:65-90
    a-z:97-122
  • 阶段二:群雄割据
    各国都有自己的字符编码
    中国:GBK码       记录中文、英文与数字的对应关系>>用2个字节来表示一个字符
    日本:shift_JIS码  记录日文、英文与数字的对应关系
    韩国:Euc_kr码     记录韩文、英文与数字的对应关系
    PS:此时各个国家之间编码不一致,不同数据无法直接交互会出现乱码!
  • 阶段三:天下统一
    万国码(unicode):兼容多个多家语言与数字的对应关系 >>用2字节表示一个字符
    后来utf家族发布了优化版:utf8  英文采用1字节 中文采用3字节
    ps:内存使用unicode 硬盘采用utf8
3.字符编码相关操作

只有字符串可以参与编码解码 其他数据类型需要先转成字符换才可以

  • 解决乱码的措施
    1. 1.当初用什么编码存的就用什么编码解码
    2. 2.一个一个切换尝试
    复制代码
  • 编码与解码
    编码:人类字符--->计算机字符
    将人类字符按照指定的编码编程计算机可以识别的数字
    encode()
    1. #encode()编码
    2. s1 = '张三'
    3. res = s1.encode('utf8')
    4. print(res)
    5. #结果为:b'\xe5\xbc\xa0\xe4\xb8\x89'
    复制代码
    解码:计算机字符--->人类字符
    将计算机可以识别的数字按照指定的编码解成人类可以读懂的字符
    decode()
    1. #decode()解码
    2. res1 = res.decode('utf8')
    3. print(res1)
    4. #结果为:张三
    复制代码
  • 不同版本解释器的区别
    python2默认的编码是ASCII码 如果想要使用utf8需要:
    1.文件最开头输入:#encoding:utf8
    2.每个字符串前面都要加u print u'我是小美女'
    python3默认就是utf8

来源:https://www.cnblogs.com/lzy199911/p/17059782.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具