QT中关于 int 类型,char* 类型和QString类型之间的转换(数据读取出现乱码)

当字符串中包含汉字时,需要用特殊的处理方法,不然会产生乱码

QString->char *

#include <QTextCodec>      //头文件
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));      
                              //现在由于版本更新,只需添加这的一句话
QByteArray ba;
QString num;
ba = num.toLocal8Bit();    //不包含文字则可以用ba = num.toLatin1()        
char* A;
strcpy(A,ba.data);

QString ->int

QString m;
int a=m.toInt();

char*->QString

#include <QTextCodec>      //头文件
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));      
                            //现在由于版本更新,只需添加这的一句话            
char* A;
QString str = QString::fromUtf8(A));    //char ->ASTring;

int->QString

int num;
QString aa=QString::number(num,10);     //按照十进制存入

猜你喜欢

转载自blog.csdn.net/qq_46423166/article/details/106842772