執行字符集(execution character set)是C/C++語言的程序編譯字符類型字符串類型所使用的編碼字符集。[1]與源代碼使用的源字符集(source character set)相對。執行寬字符集(execution wide-character set)是編譯後的程序中寬字符所使用的編碼字符集。

例如,源文件是Latin-1編碼,執行字符集為utf-8,則char c='ö';中的字符值將被編譯器從Latin-1編碼的單字節的0xD6自動轉為utf-8編碼的雙字節的0xC3B6,在目標文件可執行文件中字符c的值是'ö'的utf-8編碼值的最後一個字節值即0xB6。

使用前綴L u U分別表示wchar_t char16_t char32_t等字符類型的字面量。例如u'y'。一個wchar_t類型的字面量的值,就是該字符在執行寬字符集(execution wide-character set)中的編碼值。一個char16_t類型的字面量的值,就是該字符在Unicode編碼中的16比特的碼位;顯然該字符必須屬於Unicode中的基本多文種平面才能用16比特來編碼。一個char32_t類型的字面量的值,就是該字符在Unicode編碼中的32比特的碼位。這些字符類型在x86平台均為小端序表示。

參考文獻

編輯
  1. ^ MSDN:execution character set