ASCII, LATIN1, UTF8 简介

转载:http://blog.csdn.net/allen5200/article/details/6319832

ASCII-American Standard Code for Information Interchange
  • Character repertoire: 
    ASCII 严格来讲就是7个bit大小的字符集,也就是code point介于0-127之间的字符集合。
  • Character code: 
    32-126之间的字元是可打印字元,其他是控制字元。
  • Character encoding: 
    ASCII可以没有任何编码就可以在计算机中用一个字节表示,也就是每个code point被表示成等价的单字节二进制形式。

LATIN1-8bit sing byte coded graphic character sets.

  • Character repertoire:
    Aka ISO-8859-1。是7bit ASCII 字元集的扩充的一种,是8个bit大小的字符集,也就是code point 介于0-255之间的字符集和。
  • Character code:
    包含有191个可打印字符,其余是控制字符或者扩展的欧洲特殊字符。
  • Character encoding:
    与ASCII相似, 每个code point被表示成等价的单字节二进制形式。

UTF8-8bit Unicode Transfer Format

  • Character repertoire:
    包含世界上大部分书写系统的使用的字符,大概1百万个code point (1,114,112 = 220 + 216 )。
  • Character code:
    2,684个保留字符。 98893个图形字符。 435个控制,格式化等特殊用途的字符 。
  • Character encoding:
    是针对Unicode的一种变长的字符编码。能表示Unicode标准中任意一个字符。 UTF8可以将一个字符编码乘1到4个字节大小来表示。

1. 128US-ASCII 字符需要一个字节(U+0000-U+007F)

2. 对于带有区分符号的Latin字母和来自西欧的字符需要两个字节(U+0080-U+7FF)

3. BMP其他的字符需要3个字节

4. Non-BMP的其他字符需要4个字节。




ASCII, LATIN1, UTF8 关系:

    为了向后兼容, Unicode分配128ASCII和256 LATIN1字符的code point没有改变,与它们在ASCII和Latin1的code point 相同。 因此一个只包含ASCII字符的UTF8文件等同于ASCII文件。 同理,每个正确编码的ASCII文件也是有效地UTF8文件。对于12-256的LATIN1字符,因为其编码的特殊性-UTF8需要2个字节来表示一个 LATIN1字符,也就是二者编码的文件当然不能等价。

     如果只考虑各个编码单字节的外围:ASCII(0-127), LATIN1(0-255), UTF8(0-253), 一个UTF8编码的字符串也能被保存为LATIN1文件,但显然是乱码的。反过来,LATIN1编码的文件是无法存为一个UTF8的文件,因为一个大于 253的字符在UTF8中是不存在的。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值