如何在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沒有像那樣的「模式」。基本上,你會得到你所得到的。 –