zoukankan      html  css  js  c++  java
  • 字符编码转换

    引言:

    由于最初的计算机是由美国发明,所以第一套计算机字符编码是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

              

              

              

                      

              

          

  • 相关阅读:
    Add Two Numbers
    Reverse Linked List II
    Reverse Linked List
    Remove Duplicates from Sorted List
    Remove Duplicates from Sorted List II
    Partition List
    Intersection of Two Linked Lists
    4Sum
    3Sum
    2Sum
  • 原文地址:https://www.cnblogs.com/christmassa/p/9011830.html
Copyright © 2011-2022 走看看