寬字元

维基百科,自由的百科全书
跳转至: 导航搜索

寬字元(Wide character) 是程式設計的術語。它是一個抽象的術語(没有规定具体实现细节),用以表示比8位元字元還寬的資料類型。它不同於Unicode

wchar_t在ANSI/ISO C中是一個資料類型,且某些其它的程式語言也用它來表示寬字元。

Unicode標準4.0中提到

"ANSI/ISO C leaves the semantics of the wide character set to the specific implementation but requires that the characters from the portable C execution set correspond to their wide character equivalents by zero extension."

還有

wchar_t的寬度屬於編譯器的特性,且可以小到8位元。所以程式若需要跨過所有C和C++ 編譯器的可攜性,就不應使用wchar_t儲存Unicode文字。wchar_t類型是為儲存編譯器定義的寬字元,在部分編譯器中,其可以是Unicode字元。」

Windows API中,wchar_t是16位元寬。Windows API因不使wchar_t字元類型在單一wchar_t單元中,支援所有系統可表示的字元,而破壞了ANSI/ISO C標準。wchar_t在Windows下,反而表示一個UTF-16小尾字元(或UTF-16的一部分)。

在類Unix系統中,wchar_t是32位元寬。

ANSI C程式庫表頭檔中,<wchar.h>和<wctype.h>處理寬字元。