字符编码

charset

字符编码(Character encoding)、字集码是把字符集中的字符编码为指定集合中某一对象(例如:比特模式、自然数序列、8位组或者电脉冲),以便文本在计算机中存储和通过通信网络的传递。常见的例子包括将拉丁字母表编码成摩斯电码和ASCII。其中,ASCII将字母、数字和其它符号编号,并用7比特的二进制来表示这个整数。通常会额外使用一个扩充的比特,以便于以1个字节的方式存储。

ASCII码##

我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。
ASCII码一共规定了128个字符的编码,这128个符号,只占用了一个字节的后面7位,最前面的1位统一规定为0。

Unicode##

Unicode是为了解决传统的字元编码方案的局限而产生的,它对世界上大部分的文字系统进行了整理、编码,使得电脑可以用更为简单的方式来呈现和处理文字。Unicode出现的问题:一个是字符解析问题;另外一个就是字符存储问题(字节浪费);

UTF-8

UTF-8是Unicode的实现方式之一。UTF-8最大的一个特点,就是它是一种变长的编码方式。
UTF-8最大的一个特点,就是它是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。
UTF-8的编码规则很简单,只有二条:
1.对于单字节的符号,字节的第一位设为0,后面7位为这个符号的unicode码。因此对于英语字母,UTF-8编码和ASCII码是相同的。
2.对于n字节的符号(n>1),第一个字节的前n位都设为1,第n+1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的unicode码。

GBK

GBK即汉字内码扩展规范,K为汉语拼音Kuo Zhan(扩展)中“扩”字的声母。英文全称Chinese Internal Code Specification。字符有一字节和双字节编码,00–7F范围内是第一个字节,和ASCII保持一致,此范围内严格上说有96个文字和32个控制符号.之后的双字节中,前一字节是双字节的第一位。总体上说第一字节的范围是81–FE(也就是不含80和FF),第二字节的一部分领域在40–7E,其他领域在80–FE。GBK向下完全兼容GB2312-80编码。

GBK和UTF-8##

GBK、GB2312等与UTF8之间都必须通过Unicode编码才能相互转换:
GBK、GB2312--Unicode--UTF8
UTF8--Unicode--GBK、GB2312

乱码##

乱码指的是电脑系统不能显示正确的字符,而显示其他无意义的字符或空白,如一堆ASCⅡ代码。这样所显示出来的文字统称为乱码。解决方法:所有字符集编码都采用统一的编码。比如全部用GBK的。

(待补充)
本文整理自:
1.维基百科
2.阮一峰的网络日志

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 0 前言 在平时的开发过程中大部分人应该都遇到过中文乱码问题,浏览网页时也会遇到内容显示乱码的情况,一般遇到这种情...
    小猪啊呜阅读 7,775评论 1 10
  • 在说常见的字符编码(ASCII、gb2312、gbk、utf-8等)之前,我们先来看看编码的历史吧。 编码编年史 ...
    craneyuan阅读 4,472评论 4 4
  • 最近童心未泯,去看了《小故事大道理》这本书,以简短小故事来讲述的道理总那么令人印象深刻。长大以后,品味这些小故事会...
    NetInSight阅读 4,005评论 0 6
  • 推荐阅读: 1 单例模式 | 百度百科2 单例模式的优缺点和使用场景 | 博客园3 为什么要用单例模式 | 博客园...
    bigpangl阅读 2,144评论 0 0

友情链接更多精彩内容