ascii码对照表完整版,ascii码对照表完整版pdf下载

软件开发者经常会遇到“汉字乱码”、“软件无法显示日文”等类似问题。真相只有一个:——对字符集编码没有系统的了解。

常见的字符集编码有GB2312、GBK、BIG5、UTF-8、UTF-16,甚至有些从事MFC开发的人可能会说还有ANSI和UNICODE字符集。真的是这样吗?直接干货。

46ad4be2faee47659391e8c38a408622?_iz=31825&from=article.detail&x-expires=1705757081&x-signature=IXyFRX6kjCRNy3fF3RNxR5rNYxA%3D&index=0字符集分类

1. ANSI

美国国家标准协会,美国国家标准协会制定的编码规则。

采用多字节系统(MBCS)的变长编码,每个字符可以是单字节、双字节或多字节。兼容单字节字符集(SBCS)和双字节字符集(DBCS);兼容EUC/EUC-CN双字节编码。因为这种编码是兼容的,所以ANSI的双字节编码也是Big Endian。不同的国家和地区可以使用不同的编码规则,这些编码对应这些国家和地区的编码页。

1.1. ASCII编码

ASCII码(美国信息交换标准码)是一组128个字符的代码,基于阿拉丁字母表,主要用于表示英语和西欧字符。ascii码于1967年首次发布,最后一次更新是在1986年。ASCII码表相当于国际标准ISO/IEC 646,是世界上最通用的信息交换标准。

编码168880dcbfae43c79e71ac4536d3455e?_iz=31825&from=article.detail&x-expires=1705757081&x-signature=5qv%2FpIDbMLcbLNNB%2FJVMCTA5oeA%3D&index=1ASCII编码

1.2. GB2312编码

GB2312简体中文编码,一个汉字占用2个字节,是mainland China的主要编码方式,兼容ASCII编码。

为了支持繁体字,引入了GBK编码,这是郭彪扩展编码的简称,兼容GB2312。

为了支持少数民族语言,推出了GB1803,解决了中文、日文、韩文的编码,并兼容GBK。

字符集7973a7526baa4af282a272176416f909?_iz=31825&from=article.detail&x-expires=1705757081&x-signature=oJ60AvJsoxT7hkHBs3iKfcaf%2BrA%3D&index=2中文编码

2. UNICODE编码

Unicode又称Unicode、Universal Code、Single Code,是国际组织为容纳世界上所有字符而制定的码位编码方案,包括字符集和编码方案。它为每种语言中的每个字符设置了统一的、唯一的二进制代码,以满足跨语言、跨平台的要求。

Unicode字符集分为17个平面(即编号为0-16的17个区域),具有以下特征:

每个平面有216=65536个码点,所以整个Unicode字符集有17 65536=111 4112个码点。整个Unicode字符集的码位空间为U 000000 ~ U 10FFFF,每个平面的码位范围可以表示为UX0000 ~ UXFFFF,其中xx表示十六进制0x 00 ~0x 10,例如平面0的码位范围为U 000000 ~ U 00FFFF。平面2的码点范围是U 020000 ~ U 02FFFF,平面15的码点范围是U 0F0000 ~ U 0FFFFF。再次注意:不是每个码位都必须对应一个字符,因为Unicode字符集中的许多码位还没有被使用。d94a2ecc919947b78d79c8c89d920e9c?_iz=31825&from=article.detail&x-expires=1705757081&x-signature=g%2BClT0pzuT0At0Sbo0eV113s%2BQA%3D&index=3Unicode 17层平面

2.1. UTF-16编码

UTF-16编码起源于UCS-2,是Unicode最早的编码方式。

UCS-2编码只覆盖基本平面(即BMP,第0平面)中的码位,使用固定的两个字节直接将字符数(类似于Unicode中的码位值)映射为字符编码,不需要任何编码算法转换。显然,16位二进制位(范围从0x0000到0xffff)不能代表Unicdoe引入的补充平面(平面1到16,范围从0x10000到0x10FFFF)中的码点。所以Unicode使用UTF-16编码中的“代理(替代)机制”来解决这个问题,代理机制使用4个字节。因此,如果软件只支持UCS-2编码,就意味着只支持UCS字符集或Unicode字符集的基本平面中的字符,而不支持补充平面中的字符。

当UTF-16编码的符号序列映射成物理意义上的字节序列时,可以分为UTF-16BE(大端)和UTF-16LE(小端)两种情况。大端和小端可以分为两种情况:有和没有字节顺序标记。比如“ABC”三个字符的UTF-16编码(符号序列)是:00 41 00 42 00 43;相应的字节序列如下表所示:

各种UTF-16代码b284e96f9e404367813e6ab3d29a30db?_iz=31825&from=article.detail&x-expires=1705757081&x-signature=tCueo4xkry87fAlgYVA%2BDgWZjW8%3D&index=4“ABC”

2.2. UTF-32编码

UTF-32是编码Unicode字符的协议,每个Unicode码位正好使用32位。其他Unicode转换格式使用可变长度编码。因为UTF-32对每个字符使用4个字节,所以在空间方面效率很低。特别是非基本多语平面的字符,通常在大多数文件中很少见,以至于通常被认为没有讨论占用空间的大小,以至于UTF-32通常是其他代码的2到4倍。虽然对每个码位使用固定长度的字节似乎很方便,但它并不像其他Unicode代码那样被广泛使用。

像UTF-16,有大端和小端存储。

2.3. UTF-8编码

UTF 8编码是Unicode编码的一种形式。一个字符用1-6个字节表示,兼容ASCII编码。

49b726bfd8194172b0761fef79c229ee?_iz=31825&from=article.detail&x-expires=1705757081&x-signature=QQ%2FQOjAraAKY46fqWYD1jLyE5xg%3D&index=5UTF-8编码

3. MFC中的字符集

当MFC字符集选择多字节编码时,对应的编码是GBK编码。

当为MFC字符集选择Unicode编码时,对应的编码是UTF-16编码。

4. QT中的字符集

QString以UTF-16格式存储。

1.当选择UTF-8编码时,QString构造函数的参数对应于UTF-8编码(默认设置)。

QTextCodec * codec=QTextCodec:codecForName(' UTF-8 ');

QTextCodec:setCodecForLocale(编解码器);

QString str=”右边是UFT-8编码的字符串”;2.当选择GBK编码时,QString构造函数的参数对应于GBK编码。

QTextCodec * codec=QTextCodec:codecForName(' UTF-8 ');

QTextCodec:setCodecForLocale(编解码器);

QString str=”右边是GBK编码的字符串”;3.QString也可以指定编码赋值。

qstringstr 1=qstring:from local 8 bit(” gbk编码字符串”);

qstringstr 2=qstring:from utf8(” UTF-8编码字符串”);2ce86b4db1e542a280c81873abf6d1cf?_iz=31825&from=article.detail&x-expires=1705757081&x-signature=xHmn%2BsTFm1MFEqkL4jEAg%2F6s8ck%3D&index=6平面QString指定编码分配接口。

网约车驾龄,超龄,封号,注册,下载司机端问题,添加 微信:gua561     备注:问题

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 290004051@qq.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.zy983.com/11102.html