std::wstring 如何转换为std::string
需要能够跨平台的。我的主程序是QT
QString fileName = QFileDialog::getOpenFileName(this,tr("Open RDF DB"),".",tr("RDF DB files (*.rdf)"));//此处就是通过对话框得到文件路径
std::wstring x = rdfFileName.toStdWString(); //跟踪进来的时候此处是正常的值
std::string xx = WString2String(x); //而此处的值就不是正常的值了,路径中的中文全部变成了乱码
//我后面还要调用别人写好的一个接口去打开这个文件,而别人给我的接口中,参数是const char*
//我如果用x.c_str()要报错,不能从const w_char* 到const char*。
//而用xx.c_str(),更不行了啊
有什么方法将std::wstring转换为std::string,或者将const wchar_t*转换为char*也好啊。
对了,在调用别人接口的时候,如果我直接传参数 "c:\\中文\\1.txt"是可以的
相关推荐
c_plus_plus_string_convet.rar_plus_wstring
C++开发中经常遇到的中英文字符串表示(string,wstring)类型之间的转换。
【c++】std::wstring和std::string相互转换
#include <string> #include <iostream> #include <locale> #include <codecvt> // 将 string 转为 wstring inline std::wstring to_wstring(const std::string& input) { std::wstring_convert<std::codecvt_utf8<wchar_t>> conv
std::string std::wstring char wchar std::wstring_convert相互转换
c++字符转换
C ++:将MFC CString转换为std :: string
在UNICODE中:CString str = L“ Test”; std :: wstring ws(str); std :: string s; s.assign(ws.begin(),ws.end());
wstring与string区别及转换[源码]
本文详细介绍了C++中std::string和std::wstring的区别及其相互转换方法。std::string使用char类型,适用于ASCII或UTF-8编码的字符串;std::wstring使用wchar_t类型,适用于宽字符集如UTF-16或UTF-32,特别适合处理多字节字符(如中文、日文等)。文章还讨论了它们的使用场景,如在Windows平台上与API交互时使用std::wstring更便捷,而在Linux和macOS上std::string更常见。此外,提供了三种转换方法,包括使用std::wstring_convert和std::codecvt_utf8进行编码转换的示例代码。


