一、
中文在QT中显示乱码的原因:是因为编码和解码的不对应造成的,比如我们在windows xp、vs2010下源码文件(cpp)的字符集是GBK,而QT比如QString的编码方式是UTF。
同样的"我是汉字"这几个字,GBK编码等价于:const char * str = "\xce\xd2\xca\xc7\xba\xba\xd7\xd6";
而"\xce\xd2\xca\xc7\xba\xba\xd7\xd6"使用UTF-8解码并不能显示:“我是汉字”。
所以就需要进行字符集的转换。
二、转换方式:
void GBKtoUnicode::OnPushButtonClicked(bool bClick)
{
/* 1、
*显示乱码:对于中文操作系统本地是GBK编码,QString是UTF16编码,所以乱码,需要转换
*/
//QString str = "你好中国";
//ui.lineEdit->setText(str);
/* 1、
*将GBK编码转换为UTF16编码,解决乱码
*/
QString str = QString::fromLocal8Bit("你好中国");
ui.lineEdit->setText(str);
/* 2、
* 将UTF