编码类型及python中实现转换

常见编码类型

常见的编码类型为ASCII码,unicode,UTF-8,GB码等。

  1. ASCII码
    ASCII码为最早编入计算机的128个字母数字和符号,为单字节(8bit为1字节)。

  2. unicode
    为了统一编码,解决各国编码语言不同的问题,unicode诞生。常为两字节。

  3. utf-8
    unicode解决了编码不同的问题,但对于英文字母是只需要单字节存储的,如果使用unicode,有时会造成不必要的空间浪费。
    UTF-8编码(可变长编码)把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。如果你要传输的文本包含大量英文字符,用UTF-8编码就能节省空间。

  4. GB码
    GB就是“国标”的意思,即:中华人民共和国国家标准。GB码是面向汉字的编码,包括GB2312(GB2312-80),GBK,GB18030,表示范围从小到大递增,而且基本是向下兼容的。此外经常遇到一种叫做CP936的编码,实际上可以大概看做是GBK。

在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。


python中可通过如下方式查看编码类型

import chardet  
s = '一段测试的汉字呀'  
print chardet.detect(s)  

编码转换

utf-8 —> GBK

#先转码成unicode再转为GBK
s.decode('utf-8').encode('gbk') 

GBK —> utf-8

#先转码成unicode再转为utf-8
s.decode('gbk').encode('utf-8') 

#也可以直接指定的编码格式编码字符串
s.encoding = 'utf-8'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值