樹莓派進階之路 (032) -字元問題(2) - 用c語言怎樣得到一個漢字的GB2312編碼(轉)

來源:互聯網
上載者:User

標籤:結束   code   ring   怎樣   字串   定位字元   浮點   sdn   強制   

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) -字元問題(2) - 用c語言怎樣得到一個漢字的GB2312編碼(轉)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.