鱼C论坛

 找回密码
 立即注册
查看: 5910|回复: 3

[新人报道] 浅析ASCII码和Unicode的区别

[复制链接]
发表于 2015-3-28 20:34:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
      最早再设计计算机的时候才用8个比特(bit)作为一个字节(byte),所以一个字节所能表示的最长长度是(1111 1111)就是十进制的255,2个字节最大表示65535. 计算机是由美国人发明出来的所以最开始的字符编码只有26个英文字母和一些特殊字符,这就是我们常说的ASCII码。'a'的ASCII是65,‘Z'的ASCII是122。      那么问题来了我们天朝的汉字是怎么编码的呢?如果使用ASCII显然不合适,一个汉字至少需要2个字节编码而且还不能和ASCII表冲突。所以中国制定了GB2312编码,用来把中文编进去。但是世界上这么多国家这么多语言这需要多少不同的编码呢?

     Unicode码在此应运而生,Unicode把所有语言都统一到一套编码中,这样就不会发生乱码的事情。Unicode码一般采用2个字节的编码方式,有些生僻的或者特殊字符可能采用4字节编码。
     现在说一说ASCII码和Unicode码的区别:
              ASCII编码是一个字节,Unicode编码通常是2个字节。
              字母'A'的ASCII是65  二进制是01000001,如果把字母'A'用Unicode编码那就是 00000000 01000001
     那么新的问题来了如果对全英文采用Unicode码存储,那么就会比用ASCII存储浪费一倍的存储空间。这样在存储和传输上 太不划算。
     为了避免这情况的发生采用了新的一种编码方式 UTF-8 一种可变长编码。 UTF-8把Unicode码根据字符的长度分为1-6个字节。常用的英文字母通常被编为一个字节,汉字一般是3个字节,而一些生僻的字符可能会是4-6个字节。如果你要传输的文本包含大量英文字符,那么用UTF-8就能大大的降低存储和传输空间。

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-3-29 21:00:20 | 显示全部楼层
可以考虑叫分区版主帮你移动帖子到c++板块哦!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-4-29 15:01:20 | 显示全部楼层
如果能加上它们两者之间如何转换的代码就更加好了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-5-2 08:29:58 | 显示全部楼层
有道理。我感觉。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 06:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表