用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編碼了
發佈了35 篇原創文章 · 獲贊 3 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章