在C+中激活u8文本+; 如何在C++中使用 u8>代码>文字,使用VisualStudio 2013工具?< /P>

在C+中激活u8文本+; 如何在C++中使用 u8>代码>文字,使用VisualStudio 2013工具?< /P>,c++,visual-studio-2013,literals,C++,Visual Studio 2013,Literals,我试过:string test=u8“ááá”但它给了我一个错误,u8未定义。我有C++ v.11/p> 我有C++ v.11/p> 嗯。。。没有那么多 如果希望使用此C++11功能,则必须升级工具链 我有C++ v.11/p> 嗯。。。没有那么多 如果希望使用此C++11功能,则必须升级工具链。。如果需要,您需要更新到VS2015 您可能还希望使用实际的C++字符串文字(例如,代码> U8)“AAAA”/“代码>”,而不只是C样式字符串文字(例如,代码> U8)“AA/代码>”,其中: 。

我试过:
string test=u8“ááá”
但它给了我一个错误,
u8未定义
。我有C++ v.11/p> <>我有C++ v.11/p> 嗯。。。没有那么多

如果希望使用此C++11功能,则必须升级工具链

<>我有C++ v.11/p> 嗯。。。没有那么多

如果希望使用此C++11功能,则必须升级工具链。

。如果需要,您需要更新到VS2015

您可能还希望使用实际的C++<代码>字符串文字(例如,代码> U8)“AAAA”/“代码>”,而不只是C样式字符串文字(例如,代码> U8)“AA/代码>”,其中:

。如果需要,您需要更新到VS2015

您可能还希望使用实际的C++<代码>字符串文字(例如,代码> U8)“AAAA”/“代码>”,而不只是C样式字符串文字(例如,代码> U8)“AA/代码>”,其中:



你确定编译时处于C++11模式吗?我想是的。我如何测试这个版本才能确定?@tadman:据我所知,Visual Studio没有那样的“模式”。基本上,你得到了你所得到的一切。@Boundary,这很公平。我从来没有在它里面到处找过开关,但大多数编译器都有无数的开关,我知道Xcode需要一些指导才能让所有东西都100%对齐。Visual Studio 2017能更好地处理这个问题吗?您确定在编译时处于C++11模式吗?我想是的。我如何测试这个版本才能确定?@tadman:据我所知,Visual Studio没有那样的“模式”。基本上,你得到了你所得到的一切。@Boundary,这很公平。我从来没有在它里面到处找过开关,但大多数编译器都有无数的开关,我知道Xcode需要一些指导才能让所有东西都100%对齐。Visual Studio 2017是否能更好地处理此问题?仅此而已。我在想这就是支持。你知道我如何“替换”u8,就像在VS 2013中一样使用它吗?@GrandTim:不知道。您必须手动建立一个
char
数组,每个字符由字节标识@GrandTim:如果没有它,你就只能对字符串中的单个字节使用转义,或者生成一个宽字符并将其编码为UTF-8。就是这样。我在想这就是支持。你知道我如何“替换”u8,就像在VS 2013中一样使用它吗?@GrandTim:不知道。您必须手动建立一个
char
数组,每个字符由字节标识@GrandTim:如果没有它,您将无法对字符串中的各个字节使用转义,或者生成一个宽字符并将其编码为UTF-8。wtf:
std::string_literals
负责运算符“s”(“hi”s->
std::string
)而不是
u8
@fnc12:True。我将这两个特性混为一谈,如果继续使用C风格的文字,就不需要使用
。我进行了编辑以纠正这一点(出于其他原因使用文本仍然是一个好主意,例如,当编译器已经知道字符串长度时,避免对
NUL
进行运行时扫描,因此我将建议保留在中)。wtf:
std::string\u literals
负责运算符“s”(“hi”s->
std::string
)非
u8
@fnc12:真。我将这两个特性混为一谈,如果继续使用C风格的文字,就不需要使用
。我通过编辑来纠正这一点(出于其他原因使用文本仍然是一个好主意,例如,当编译器已经知道字符串长度时,避免对
NUL
进行运行时扫描,因此我保留了建议)。
using namespace std::string_literals;