铂金终局 下载:qt4编程——关于中文乱码

来源:百度文库 编辑:九乡新闻网 时间:2024/05/03 08:59:39
qt4编程——关于中文乱码2009-04-22 14:33网上N种说法,统统不行,很多根本不是qt4里面的方法,在此也请那些喜欢复制粘帖的朋友本着对他人负责的精神,自己拿不准没测试过别不负责任地胡乱粘贴,那样会给很多人带来不方便。
最后我还是自己查qt助手得出的解决方案,如下:
首先,声明一个const char *类型的数据,然后将此数据用 QString fromLocal8Bit ( const char * str, int size =-1 )方法将该const char *类型转换成QString类型。请注意,中间参数为const char*类型,这里千万类型要准确。而fromLocal8Bit方法里面有两个参数,经过测试一个参数也可工作,size会默认成为-1,即该constchar *串的长度。你可以分段进行操作,然后通过append()方法追加到一个QString内(这样做的目的是有时候是const char *+ QString + const char*的情况,如果你用一段中文然后中间再加上变量数据就很容易遇到这种情况)。之后,你便可以对该QString任意操作了,而且不会乱码。
示例:

if(code == 200){

ui->stackedWidget->setCurrentIndex(8);

}else{

const char *str = errordetect(code);

message.append(QString::fromLocal8Bit(str));

ui->label_31->setText(message);

message.clear();

ui->stackedWidget->setCurrentIndex(9);

}

已经调试通过,用这种方式从后台输出到label中的中文文本不会乱码。