多位元組字符集 MBCS

2021-07-01 20:16:43 字數 1595 閱讀 1001

visual c++

支援多位元組字符集 (mbcs)

多位元組字符集 (mbcs) 是一種替代 unicode 以支援無法用單位元組表示的字符集(如日文和中文)的方法。為國際市場程式設計時應考慮使用 unicode 或 mbcs,或使程式能夠通過更改開關來生成支援兩種字符集之一的程式。

最常見的 mbcs 實現是雙位元組字符集 (dbcs)。一般來說,visual c++(尤其是 mfc)完全支援 dbcs。

有關示例,請參見 mfc 源**檔案。

對於語言使用大字符集的市場所使用的平台,代替 unicode 的最佳方法是 mbcs。mfc 通過使用可國際化的資料型別和 c 執行時函式來支援 mbcs。您也應在自己的**中這樣操作。

在mbcs下,字元被編碼為單位元組或雙位元組。在雙位元組字元中,第乙個位元組(即前導位元組)表示它和下乙個位元組將被解釋為乙個字元。第乙個位元組來自留作前導位元組的**範圍。哪個範圍的位元組可以用作前導位元組取決於所使用的**頁。例如,日文**頁 932 使用 0x81 到 0x9f範圍內的位元組作為前導位元組,而朝鮮語**頁 949 則使用其他範圍的位元組。

在 mbcs 程式設計中需考慮下列所有因素。

環境中的 mbcs 字元

mbcs 字元可以出現在檔名和目錄名等字串中。

編輯操作

mbcs 應用程式上的編輯操作應在字元上操作,而非在位元組上操作。插入符號不應拆分字元,向右鍵應向右移動乙個字元等。delete應刪除乙個字元;undo則應將字元重新插入。

字串處理

在使用 mbcs 的應用程式中,字串處理引起特殊問題。兩種寬度的字元混合在乙個字串中;因此必須記住檢查前導位元組。

執行時庫支援

c 執行時庫和 mfc 支援單位元組、mbcs 和 unicode 程式設計。單位元組字串用 str 執行時函式族處理,mbcs 字串用相應的 _mbs 函式處理,而 unicode 字串用相應的 wcs 函式處理。mfc 類成員函式的實現使用可移植執行時函式,這些可移植執行時函式在正常情況下對映到標準 str 函式族、mbcs 函式或 unicode 函式,如「mbcs/unicode 可移植性」中所述。

mbcs/unicode 可移植性

使用 tchar.h 標頭檔案可以用同乙個源生成單位元組的 mbcs 應用程式和 unicode 應用程式。tchar.h 定義以 _tcs 為字首的巨集,這些巨集根據相應的情況對映到 str、_mbs 或 wcs 函式。若要生成 mbcs,請定義_mbcs符號。若要生成 unicode,請定義_unicode符號。預設情況下,為 mfc 應用程式定義的是_mbcs。有關更多資訊,請參見 tchar.h 中的一般文字對映。

如果同時定義了_unicode_mbcs,則行為不確定。

mbctype.h 和 mbstring.h 標頭檔案定義了 mbcs 特定的函式和巨集,在某些情況下可能需要這些函式和巨集。例如,_ismbblead能告訴您某個字串中的特定位元組是否為前導位元組。

為獲得國際可移植性,使用 unicode 或多位元組字符集 (mbcs) 編碼程式。

多位元組字符集 MBCS

visual c 支援多位元組字符集 mbcs 多位元組字符集 mbcs 是一種替代 unicode 以支援無法用單位元組表示的字符集 如日文和中文 的方法。為國際市場程式設計時應考慮使用 unicode 或 mbcs,或使程式能夠通過更改開關來生成支援兩種字符集之一的程式。最常見的 mbcs 實現...

多位元組字符集 MBCS

visual c 支援多位元組字符集 mbcs 多位元組字符集 mbcs 是一種替代 unicode 以支援無法用單位元組表示的字符集 如日文和中文 的方法。為國際市場程式設計時應考慮使用 unicode 或 mbcs,或使程式能夠通過更改開關來生成支援兩種字符集之一的程式。最常見的 mbcs 實現...

Unicode 和多位元組字符集 MBCS

有些國際市場以大字符集來使用日文和中文等語言。為了支援這些市場的程式設計,microsoft 基礎類庫 mfc 支援以兩種方式處理大字符集 unicode 多位元組字符集 mbcs unicode 字串的 mfc 支援 整個類庫有條件地支援 unicode 字元和字串。特別是 cstring 類也支...