c ++编译器如何从utf8源文件生成unicode字符串文字

时间:2016-11-21 20:09:54

标签: c++ unicode

我正在用ccc编写一个用c ++编写的程序。我有一个utf8编码的源文件,我希望源文件中的字符串文字为UTF-16字符串。我使用gcc选项-municode,它定义了UNICODE宏。字符串文字仍然实现为const char *。当我使用TEXT(“hello world”)时,它仍然是一个const char *

另外,我想知道要定义哪个宏,或者使用哪个命令行选项,在std :: string对象中有16位特征,以及std库的模板实例化(我想要std :: char_traits是wchar_t。

1 个答案:

答案 0 :(得分:1)

从C ++ 11开始,有一些方法可以为字符串文字和字符串对象指定UTF-16。它为UTF-16字符引入char16_t,为UTF-16字符串引入std::u16string,为UTF-16字符引入u prefix

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

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