我想做到這一點,e.gfind_first_of在一個串一個Unicode特殊字符使用其字節
size_t pos=wStr.find_first_of(L"U+8001");
但GNU編譯器警告保持字符太長。我不知道什麼字符0x8001代表,但這是它的編碼字節。
我想做到這一點,e.gfind_first_of在一個串一個Unicode特殊字符使用其字節
size_t pos=wStr.find_first_of(L"U+8001");
但GNU編譯器警告保持字符太長。我不知道什麼字符0x8001代表,但這是它的編碼字節。
請嘗試size_t pos=wStr.find_first_of(L"\u8001");
搜索字符U + 8001。
簡化您的問題。創建一個簡單的程序,使用MikeCAT的答案,並向自己證明你的wStr變量是正確的,幷包含你所期望的。例如...
std::wstring wStr(L"HELLO\u8001World");
auto aaa = wStr.find_first_of(L"\u8001");
std::cout << aaa;
您還應該使用調試器,步驟到位置並查看變量的內容。
[該警告未出現在Wandbox,gcc。](http://melpon.org/wandbox/permlink/DkYUBmg05WigHKAC) – MikeCAT
'std :: string'和'std :: wstring'都不適合處理Unicode,也不是標準的庫函數。如果您需要做的不僅僅是存儲打印屏幕,還需要使用像ICU這樣的庫。 –
這沒有任何意義。顯示完整的警告消息。 –