• 字符编码转换


    引言:

    由于最初的计算机是由美国发明,所以第一套计算机字符编码是ascii,ascii码共包含255个字符(英文字符和特殊字符)

    随着科技的发展,各国逐渐拥有自己的编码 如中国的gbk,日本的Shift-JIS等

    但由于每个国家有各自的编码,无法实现a国的软件在b国的电脑完美运行

    解决方法有两种:1.b国的每一台电脑安装a国对应的字符编码表和解释器

            2.a国的代码,全部改为b国的编码

    因此,unicode由应而生,即万国码

    但 unicode 的每个字符都为两个字节,即如果一段代码全为英文的话就会造成极大的空间浪费,同时还会造成网络传输速度的浪费

    ##  一个英文在ascii中,占一个字节       一个中文在unicode中,占两个字节

           在unicode中,占两个字节      在utf-8中,占三个字节

           在gbk中,占一个字节

           在utf-8中,占一个字节

    字符编码转换:

          在python3中,你只要在顶端声明以何种编码编写即可以,因为python3会把你所编写的代码按编写规则自动在内存中映射为Unicode,而Unicode的映射功能自动把所写代码转换为当前系统默认字符编写规则

          但在python2中,由于你以何种声明代码编写,python2在内存中就以何种代码生成,所以无法实现自动转换

          如需转换按一下规则进行

              #encoding:utf-8

              s = '我的天'

              s.decode('utf-8')  ##按所说代码规则解码为unicode

              s.encode('gbk') ##编码为所需形式

    如何确认字符转换是否转换为多需的字符编码形式:

              首先,打印出该段字符对应的unicode的地址,然后打印出转码后的地址,之后在转换码里对应

              s = '路飞学城'

              s.decode('gbk')

              u'u8defu98deu5b66u57ce   #这里打印的是 路飞学城的unicode编码的二进制形式

              s

              xc2xb7xb7xc9xd1xa7xb3xc7    #这里打印的是s的gbk形式的二进制形式

              由查表的在转换表里对应为Go-4237

              但Go-4287和c2b7 也不相等啊  不急 把c2b7数字分别表示为二进制形式

              c   2

              8 4 2 1 8 4 2 1    

              1 1 0 0 0 0 1 0    #这里的c,b都为16进制,全转为10进制后转为二进制

              b     7

              8 4 2 1 8 4 2 1    #c:12, b:11

              1 0 1 1 0 1 1 1

              把左侧第一位转都转为0后,正好对应为 4237  #最左侧的第一位是用来区分高字节和低字节

    name1="林" #掌握:在python3中字符串都是unicode格式的二进制存放与内存中
            #而在python2中字符串都是已经encode后的结果,即bytes

              

              

              

                      

              

          

  • 相关阅读:
    selenium headlesschrome下设置最大窗口模式
    lxml简明教程
    lxml etree的一个问题
    pycharm导入模块的时候遇到的两个错误
    linux下安装python
    【Android进阶学习】shape和selector的结合使用
    ANDROID资源文件【转】
    android 屏幕适配问题【转】
    android UI进阶之style和theme的使用
    Android入门第十六篇之Style与Theme [转]
  • 原文地址:https://www.cnblogs.com/christmassa/p/9011830.html
Copyright © 2020-2023  润新知