如何在C++中使用u8
文字,使用Visual Studio 2013工具?在C++中激活u8文字
我试过这个:string test = u8"áááá";
但它给我的错误,u8 is undefined
。我有C++ V.11
如何在C++中使用u8
文字,使用Visual Studio 2013工具?在C++中激活u8文字
我试过这个:string test = u8"áááá";
但它给我的错误,u8 is undefined
。我有C++ V.11
VS2013 doesn't support Unicode string literals。如果你想要它们,你需要更新到VS2015。
你也可以使用实际的C++ string
文字(如u8"áááá"s
),不是单纯的C-风格字符串(如u8"áááá"
),其中VS2015 supports so long as you include the necessary using namespace
for them:
using namespace std::string_literals;
wtf:'std :: string_literals'负责操作符“”s(“hi”s - >'std :: string')而不是'u8' – fnc12
@ fnc12:True。我将这两个特性混为一谈,如果继续使用C风格文字,那么不需要使用'using'。我已经编辑来纠正这种情况(因为其他原因使用文字仍然是一个好主意,例如,当编译器知道字符串长度时,避免运行时扫描'NUL',所以我离开了这个建议。 – ShadowRanger
我有C++ V.11
嗯......没有那么多,没有。
Visual Studio 2013 does not support Unicode string literals。
如果您希望使用此C++ 11功能,您将不得不升级您的工具链。
就是这样。我在想这是支持。你知道如何在VS 2013中“替换”u8,以便像使用它一样? – GrandTim
@GrandTim:没有。你必须手工建立一个'char'数组,并且逐个字节地标识单个字符! –
@GrandTim:如果没有它,你会使用字符串中单个字节的转义符,或者使用宽字符字面值并将其编码为UTF-8。 – ShadowRanger
你确定你在C +是编译时为+11模式? – tadman
我想是的。我如何测试版本以确保? – GrandTim
@tadman:据我所知,Visual Studio没有像那样的“模式”。基本上,你会得到你所得到的。 –