字元編碼問題

2021-07-30 08:42:16 字數 649 閱讀 1638

關鍵字:編碼集、bstr、lpstr、lpcstr、lpwstr、lpcwstr、lptstr、lpctstr、cstring

1、編碼集

(1)ascii編碼集:單位元組00h-7fh範圍(最高位為0)

(2)擴充套件ascii編碼:單位元組80h-ffh範圍(最高位為1)

(3)gb2312:採用兩個位元組表示,高位位元組a1-fe,低位位元組a1-fe。

由於採用gb2312編碼的每個位元組的最高位都是1,ascii編碼的最高位都是0,所以當遇到最高位是0的位元組時,根據ascii編碼表解碼即可,所以與ascii編碼是相容的;同理,可得gb2312與擴充套件ascii是不相容的。

(4)gbk:採用兩個位元組表示,編碼範圍是:0x8140-0xfefe,gbk是對gb2312的擴充套件,是相容gb2312的。

(5)gb18030:對gbk的擴充套件,增加了少數民族的字。

(5)ansi(在vs中也叫作「多位元組字符集」,如gb2312就屬於多位元組字符集):並不代表乙個具體的編碼,在不同系統中不一樣。在簡體中文windows中,代表gbk編碼;在日文windows系統中代表shift_jis編碼。

(6)unicode編碼:每個國家的編碼方式都不一樣,iso為了統一,創造了unicode編碼,unicode不相容任何編碼。

(7)utf-8,utf-16

字元編碼問題

字元編碼主要分兩種 mbcs以及 unicode。以 c cc 為例,以 char 為單位的陣列使用mbcs編碼 如 ascii,gb2312,big5 以wchar t 為單位的陣列使用unicode作為編碼。比如你的程式中使用 char sztitle 窗體標題 此時,sztitle字串使用的的...

字元編碼問題

utf 8 1.單位元組的字元,位元組的第一位設為0,對於英語文字,utf 8碼只占用乙個位元組,和ascii碼完全相同 2.n個位元組的字元 n 1 第乙個位元組的前n位設為1,第n 1位設為0,後面位元組的前兩位都設為10,這n個位元組的其餘空位填充該字元unicode碼,高位用0補足。除了格式...

字元編碼問題

階段一 ascii碼 計算機剛開始只支援英語,其它語言不能夠在計算機上儲存和顯示。ascii碼一共規定了128個字元的編碼,這128個符號 包括32個不能列印出來的控制符號 只占用了乙個位元組的後面7位,最前面的1位統一規定為0。階段二 ansi編碼 本地編碼 為使計算機支援更多語言,通常使用0x8...