字符集

本文详细介绍了ANSI编码的特点及其与其他编码的区别,包括Unicode和UTF-8的对比,解释了不同编码如何适应国际化需求。

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

1、ANSI(American National standards Institute)编码
     英文占一个字节,汉字2个字节,以一个\0结尾,常用于txt文本文件,unicode和ansi都是字符代码的一种表示形式。
为使计算机支持更多语言,通常使用 0x80~0xFF 范围的 2 个字节来表示 1 个字符。比如:汉字 '中' 在中文操作系统中,使用 [0xD6,0xD0] 这两个字节存储。
       不同的国家和地区制定了不同的标准,由此产生了 GB2312, BIG5, JIS 等各自的编码标准。这些使用 2 个字节来代表一个字符的各种汉字延伸编码方式,称为 ANSI 编码。在简体中文系统下,ANSI 编码代表 GB2312 编码,在日文操作系统下,ANSI 编码代表 JIS 编码。
        不同 ANSI 编码之间互不兼容,当信息在国际间交流时,无法将属于两种语言的文字,存储在同一段 ANSI 编码的文本中。


ANSI编码表示英文字符时用一个字节,表示中文用两个字节,而unicode不管表示英文字符还是中文都是用两个字节来表示。


   计算机内部的数据最终以二进制形式存放,每个二进制位(bit)有0和1两种状态,而8个二进制位(bit)组合称为一个字节(Byte),所以一个字节能够组合出256中状态,即从00000000到11111111。


  ANSI的ASCII字符集(American Standard Code Information Interchange),GB2312是ASCII的中文扩展
规定一个小于127的字符意义与原来相同,但两个大于127的字符连在一起时,就表示一个汉字,这就是学说的全角,原来127以下的那些就叫半角字符


Unicode字符串,每个字符(汉字、英文字母)都占2个字节,以2个连续的\0结尾,NT操作系统内核用的是这种字符串,常被定义为typedef unsigned short wchar_t;所以我们有时常会见到什么char*无法转换为unsigned short*之类的错误,其实就是unicode


UTF8是Unicode一种压缩形式,英文A在unicode中表示为0x0041,是Ansi的超集老外觉得这种存储方式太浪费,因为浪费了50%的空间,于是就把英文压缩成1个字节,成了utf8编码,但是汉字在utf8中占3个字节,显然用做中文不如ansi合算,这就是否中国的网页用作ansi编码而老外的网页常用utf8的原因。




8bit(位)=1Byte(字节)
1024Byte(字节)=1KB
1024KB=1MB
1024MB=1GB
1024GB=1TB
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值