执行字符集

(重定向自执行宽字符集

执行字符集(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