[問題] 請教wstring -> char * 的問題(已解決)
看板C_and_CPP (C/C++)作者donkeychen (Bad_To_The_Bone)時間13年前 (2013/02/09 22:10)推噓0(0推 0噓 13→)留言13則, 4人參與討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++ 2005
由於需要把wstring 轉成const char*
自己用網路上寫的轉換後還是錯誤
------- code ---------
std::string ws2s(const std::wstring& s)
{
string result;
int len = WideCharToMultiByte(CP_ACP, 0, s.c_str(), s.size(), NULL, 0,
NULL, NULL);
char* buffer = new char[len + 1];
WideCharToMultiByte(CP_ACP, 0, s.c_str(), s.size(), buffer, len, NULL,
NULL);
buffer[len] = '\0';
result.append(buffer);
delete[] buffer;
return result;
}
std::wstring lala = L"測試";
std::string haha = ws2s(lala);
使用haha.c_str();
存入資料庫後還是一堆亂碼都顯示????
----------------------------
感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.227.120.224
→
02/09 23:07, , 1F
02/09 23:07, 1F
→
02/09 23:08, , 2F
02/09 23:08, 2F
→
02/09 23:27, , 3F
02/09 23:27, 3F
→
02/09 23:28, , 4F
02/09 23:28, 4F
→
02/09 23:30, , 5F
02/09 23:30, 5F
→
02/10 01:39, , 6F
02/10 01:39, 6F
→
02/10 01:40, , 7F
02/10 01:40, 7F
→
02/10 01:47, , 8F
02/10 01:47, 8F
→
02/10 03:15, , 9F
02/10 03:15, 9F
→
02/10 03:16, , 10F
02/10 03:16, 10F
-----------------------------
我是用SQLite3的sqlite3_exec
第二個參數是要做的SQL字串 文件說可以直接在code裡面打各語系
目前測試
db檔案開啟好像內建就是utf8的方式 可以不用變成utf16
我嘗試把code做成檔名
然後把檔名存到wstring 再用上面的function轉換後原本是失敗的
把CP_ACP 改成CP_UTF8後有成功
========================================
PS.我看不懂這些文字 貼來BBS有些字還是消失 但是可以在WINDOWS檔案總管顯示
de_Schließen
es_Atrás
fr_Mettre à jour
it_Mercoledì
ja_ファイル
tr_Günceller
zh_cn_继续
zh_中文
※ 編輯: donkeychen 來自: 61.227.120.224 (02/10 03:25)
→
02/10 16:56, , 11F
02/10 16:56, 11F
→
02/18 10:38, , 12F
02/18 10:38, 12F
→
02/18 10:38, , 13F
02/18 10:38, 13F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章