字符编码

一   ASCII码:

       计算机内部,每一个二进制位(bit)有01两种状态,一个字节(byte),八个二进制位就可以组合出256种状态。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从0000000011111111

      ASCII码记录英文字符和二进制位之间的关系。ASCII码一共规定128个字符,占一个字节的后7位,最前面一位统一规定为1。

二  非ASCII码:

      用128个符号足够表示英文符号,但是不足以表示其他符号。因此开始利用闲置的最高位编入新的符号。不同的编码128~256这一段表示的符号不同,但是0~127位表示的符号是相同的。

     简体中文常用的编码方式是GB2312,使用两个字节表示一个汉字,理论上可以表示256*256=65536个符号。

     虽然都是用多个字节表示一个符号,但是GB类的汉字编码与Unicode 和 UTF-8 是毫无关系的。

三  Unicode:

      unicode:将世界上所有符号都纳入其中,每一个符号给予一个独一无二的编码(这样的话乱码问题就会消失)。

      unicode是一个很大的集合,现在的规模可以容纳100多万个符号。

      问题:     unicode是一个符号集,只规定了符号的二进制代码,却没有规定这个二进制代码该如何存储。

                       有的符号占用两个字节,有的符号只占用一个字节,无法明确规定unicode的存储模式。

     造成的结果:1)出现了 Unicode 的多种存储方式,也就是说有许多种不同的二进制格式,可以用来表示 Unicode。2)                                      Unicode 在很长一段时间内无法推广,直到互联网的出现。

四  UTF-8

     UTF-8是使用最普及的一种Unicode实现方式

     UTF-8是一种变长的编码方式,可以用1~4个字节表示一个符号,根据不同符号变换字节长度。

    编码规则:

        1)对于单字节的符号,字节的第一位设为0,后面7位为这个符号的 Unicode 码。因此对于英语字母,UTF-8 编码和 ASCII 码是相同的。

       2)对于n字节的符号(n > 1),第一个字节的前n位都设为1,第n + 1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的 Unicode 码

      

小提示:

        ANSI是默认的编码方式。对于英文文件是ASCII编码,对于简体中文文件是GB2312编码(只针对 Windows 简体中文版,如果是繁体中文版会采用 Big5 码)。

参考:http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html           

      

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值