树莓派进阶之路 (032) -字符问题 - 用c语言怎样得到一个汉字的GB2312编码(转)

Posted 极客先锋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了树莓派进阶之路 (032) -字符问题 - 用c语言怎样得到一个汉字的GB2312编码(转)相关的知识,希望对你有一定的参考价值。

C/C++支持的是ASCII,不过汉字编码中,GB2312与ASCII是兼容的,所以可以在C中获得汉字的GB2312编码

GB2312是两个字节的,第一字节是高八位,第二字节是低八位,比如下面的程序:
#include<stdio.h>
#include<string.h>
int main()
{
char a[5];
strcpy(a,"啊");
printf("%XH %XH\n",(unsigned char)a[0],(unsigned char)a[1]);
return 0;
}
a[0]是“啊”字的高八位,a[1]是低八位,程序运行结果是a[0]=B0 a[1]=A1,用16进制表示的,所以“啊”字的GB2312编码是B0A1了~
输出时要强制转换成unsigned char,不然就变成负数了,因为编码是以8位的无符号整数为单位的
当然也可以转成10进制啦,比如
int b;
b=(unsigned char)a[0]*256+(unsigned char)a[1];

b即为汉字的10进制GB2312编码了

 

%a,%A 读入一个浮点值(仅C99有效)   
%c 读入一个字符   
%d 读入十进制整数   
%i 读入十进制,八进制,十六进制整数   
%o 读入八进制整数   
%x,%X 读入十六进制整数   
%s 读入一个字符串,遇空格、制表符或换行符结束。   
%f,%F,%e,%E,%g,%G 用来输入实数,可以用小数形式或指数形式输入。   
%p 读入一个指针   
%u 读入一个无符号十进制整数   
%n 至此已读入值的等价字符数   
%[] 扫描字符集合   
%% 读%符号

转载:http://blog.csdn.net/han_kin/article/details/47838715

以上是关于树莓派进阶之路 (032) -字符问题 - 用c语言怎样得到一个汉字的GB2312编码(转)的主要内容,如果未能解决你的问题,请参考以下文章

树莓派进阶之路 (018) - 树莓派通过filezilla,samba与PC文件共享(转)

树莓派进阶之路 (024) - windows远程桌面连接树莓派通过xrdp服务(转)

树莓派进阶之路 (017) - 基于树莓派的专用摄像头实时监控

树莓派进阶之路 (038) - P2P 文件下载机

树莓派进阶之路 (030) -Picustom.h(原创)

树莓派进阶之路 (033) - 开机启动自定义脚本