字符编码转换

Posted christmassa

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符编码转换相关的知识,希望对你有一定的参考价值。

引言:

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

          

      

 

以上是关于字符编码转换的主要内容,如果未能解决你的问题,请参考以下文章

如何对mysql中的字符进行编码转换

在Linux如何让更改文件的字符编码

字符编码转换

【高分,急!】linux下字符编码转换问题

java获取字符串编码和转换字符串编码

求帮助,编码转换的问题 python 3.4.0