ANSI, ASCII , Unicode

本文解析了ANSI和ASCII的关系,说明了MBCS字符集的概念及其与ASCII的兼容性,并探讨了Unicode的不同实现形式如UTF-8和UTF-16。此外,还讨论了Unicode与ANSI之间的区别及转换可能性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1) ANSI 和ASCII 码是一回事么

    刚开始应该是一回事,因为计算机刚出来时,只用ASCII的128个字符。

     但后来,128显然不够用了,又出现了后来的256(使用了第8位),以及能表示更多字符的GB2312,GBK等,后者称为MBCS字符集(Multi Byte Character System).

     不过,MBCS同ASCII是完全兼容的。就是对于前ASCII的128个字符,在MBCS字符集下有完全相同的编码。也意味着MBCS下,字符的长度有可能有1个字节的,也有多个字节的。

  由于这个兼容性,所以也把这些统称为是ANSI字符集。

 

2) 在不同的场合,ANSI可能代表ASCII,也有可能代表MBCS。 还有可能什么都代表。如notepad在保存时,那个ANSI表示系统默认的代码页。如果是英文的系统,则是ASCII,如果中文的,则应该是GDK

3)Unicode只是确定了字符的二进制编码,但并没有确定字符的存储和传输时的编码。比如UTF-8 ,UTF16。 这些都是Unicode的具体实现方式。

4)Unicode和ANSI是不兼容的。因为对于128个ASCII码来说,Unicode也要用两个字节来表示。 还有就是同一个MBCS字符,在Unicode和ANSI下可能是不一样的。

5)Unicode 和ANSI有时候可以相互转化。(这时候的ANSI显然指的是MBCS.因为ASCII只有128个字符,大多数的Unicode字符都没有ASCII码)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值