Qt的中文乱码问题一般有两种方法处理:
说明:QString默认是使用Unicode字符串,而编辑的代码时使用的编码一般不是Unicode,通常是gb2312/utf8,因此在使用中文的时候,要将中文转化为Unicode之后,Qt才能正确显示中文。
直接使用QString时,乱码如图:
QString content = "中文显示不乱码。";
1>使用QString的静态函数。显示正常:
QString content = QString::fromUtf8("中文显示不乱码。");
2>使用QTextCodec的方法。显示正常:
QString的静态函数只提供了常用编码格式的转换,在遇到不常用的编码的时候,通常是使用QTextCodec的方式来解决的。
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
QString content = codec->toUnicode("中文显示不乱码。");