我用string 來存盤utf8編碼格式的資料,根據換行符來拆分資料是出錯,無法全部正確拆分,我是通過find來查找,來截取子串的。
uj5u.com熱心網友回復:
find查找有時候會回傳負值,比如-95,-124,不是-1uj5u.com熱心網友回復:
你要用寬字符來處理,string轉wstring,或直接用wstringfor example
#include <iostream>
#include <codecvt>
using namespace std;
int main(void)
{
wstring_convert< codecvt_utf8<wchar_t> > conv;
string s = "我是誰?\n是寬字串";
wstring ss = conv.from_bytes(s); //轉換為寬字串
cout << ss.find(L"\n") << endl;
wstring ws = L"我是誰?\n是寬字串"; //直接用寬字串
cout << ws.find(L"\n") << endl;
return 0;
}
uj5u.com熱心網友回復:

推薦unicode.他的編碼范圍一致。不會像utf8,一個或兩個位元組表達一個字符。unicode始終都是2個位元組表達一個字符。
uj5u.com熱心網友回復:
謝謝啊,我已經發現問題了,解決了
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/11088.html
標籤:其它技術問題
