概述
1. ASCII编码:它用7位二进制数进行编码,可以表示128个字符。字符数据以ASCII码的形式存放在内存中,其存储形式和整数的存储形式在本质上是相同的。一个字符数据可以以整数的形式输出,也可以以字符的形式输出。如果把一个字符以字符的形式输出,需要把存储在内存中的ASCII码转换成相应的字符,然后输出;如果是以整数形式输出,那么就可以直接将ASCII码作为整数输出。同样,对字符数据进行算术运算也就相当于对它们的ASCII码进行算术运算。ASCII码能表示汉字。
2. GB2312编码:它包含了6000多个汉字,此外还收录了常见的数学符号、罗马和希腊字母等。它采用两个字节来表示一个汉字。由于ASCII码占用7位,所以这种汉字编码方式规定:对于连续的两个字节,只有在两个字节的第7位都是1的情况下,才认为这两个字节合起来表示一个汉字。GB2312与ASCII兼容。
3. Unicode编码:Unicode使用16位来统一表示所有的字符,对于ASCII里的那些半角字符,Unicode保持其原编码不变,只是将原来的8位扩展为16位。这样一来,所有的字符都固定占用两个字节。Unicode在制定时没有考虑与任何一种现有的编码方案保持兼容,这使得GBK与Unicode在汉字的内码编排上时完全不一样的。没有一种简单的算法可以对文本内容进行Unicode编码和另一种编码的转换,这种转换必须通过查表来进行。Unicode编码可以表示汉字。
通过下面的方式可以证明汉字是占两个字节的。
char *ptr1="中国人";
printf("%d/n",strlen(ptr1));
char *ptr2="chinese";
printf("%d/n",strlen(ptr2));
上面的输出结果分别是6和7。所以一个汉字是占两个字节的。
最后
以上就是时尚板凳为你收集整理的字符编码方式的比较的全部内容,希望文章能够帮你解决字符编码方式的比较所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复