执行字符集
(重定向自执行宽字符集)
执行字符集(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平台均为小端序表示。