我爱我的家园!

成功在于你是否努力,希望在于你是否相信自己!

 

在C语言中怎样获得汉字编码?

C语言中,我们用整数输出字符得到的就是该字符的ASII码,如用整数输出a,得到97

但是,要是用字符数组存的汉字,怎样获得他的编码?汉字用的是两个字节存储,是不是这两个字节都有ASII码?那该怎么获得他们?然后把他们统一成一个编码?


汉字编码分好几种,不知道你想问的是哪种?

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编码了

posted on 2008-09-16 01:11 死神 阅读(3676) 评论(3)  编辑  收藏 所属分类: C/C++

评论

# re: 在C语言中怎样获得汉字编码? 2010-07-15 19:01

請問如果已經知道GB2312编碼是多少
那要轉成漢字要怎麼轉呢?  回复  更多评论   

# re: 在C语言中怎样获得汉字编码? 2010-07-18 14:37 杨银邦

´óÓ¢ÐÛII请问这是什么编码?谢谢   回复  更多评论   

# re: 在C语言中怎样获得汉字编码? 2010-07-18 14:43 杨银邦(QQ960692272)

如果有对编码很精通的朋友。请联系QQ 96 0 69 22 72,你会收到精美的礼品!诚待天下客
Èç¹ûÓжԱàÂëºÜ¾«Í¨µÄÅóÓÑ ,ÇëÁªÏµ !Äã»áÊÕµ½¾«ÃÀµÄÀñÆ·£¡³Ï´ýÌìÏ¿Í

怎样翻译并制作一个编码器 使之互相通译?  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 

导航

统计

公告

欢迎大家来到我的个人世界!

常用链接

留言簿(3)

随笔分类(5)

随笔档案(9)

文章分类(37)

文章档案(41)

相册

语音技术

最新随笔

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜