QT 下把编辑框内的中文字符转换为 char*

第一种方法

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));

 

经过测试

经过以上两步,可保证中文信息不会丢失

你可能感兴趣的:(测试,qt)