C 编译器如何从UTF8源文件中生成Unicode字符串文字



我正在使用GCC在C 上编写一个程序。我有一个UTF8编码的源文件,我希望从源文件中作为UTF-16字符串中的字符串文字。我使用gcc选项-Municode,该选项定义了Unicode宏。字符串文字仍以const char *的形式实现。当我使用文本(" Hello world")时,它仍然是const char *

另外,我想知道要定义哪个宏或使用哪个命令行选项,可以在std :: string对象中具有16位特征,并且STD库的模板实例化(我想要STD :: CHAR__TRAITS)是WCHAR_T。

从C 11开始,有一些方法可以针对字符串文字和字符串对象指定UTF-16。它引入了用于UTF-16字符的char16_tstd::u16string用于UTF-16字符串和utf-16文字的u前缀。

std::u16string str = u"Hello World";

编译器负责将源代码中的字符转换为适当的文字字符值。

最新更新