第一种方法
QString str(tr("你好"));
wchar_t wc[100] = {0};
pEditShortDes->text().toWCharArray(wc);//关键1
char cStr[100] = {0};
size_t Convert = 0;
setlocale(LC_ALL, ".936");//关键2
wcstombs_s(&Convert,cStr,50,wc,50);
QString str1(tr(cStr));
第二种方法(要求必须在中文系统下,其它系统将会失败)
QString str(tr("你好"));
char cStr[100] = {0};
strcpy(cStr,(const char*)str.toLocal8Bit());
ShowInfo(tr(cStr));
经过测试
经过以上两步,可保证中文信息不会丢失
本文介绍了两种在C++中将QString中的中文字符转换为不同格式的方法,并通过测试验证了其有效性。第一种方法使用了setlocale和wcstombs_s函数进行转换;第二种方法则依赖于系统的本地设置。
3608

被折叠的 条评论
为什么被折叠?



