Qt学习之旅-----Qt4在Window和Linux下的中文显示问题

Qt的中文显示一直是个问题    经常会出现乱码    这里我我总结下我在Qt4中的经验  

首先   Windows 和 linux 的编码方式是不同的  所以他们的中文  本质上是不一样的


这里是解决方案的格式  在main函数里面加入 如下

	#include 

下面的是具体的支持  

    QTextCodec::setCodecForLocale(QTextCodec::codecForName("system")); //路径名支持中文
    QTextCodec::setCodecForTr(QTextCodec::codecForName("system")); //QString支持中文
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("system")); //string支持中文


以下是各种文字 的格式

“system” 是系统带的文字格式    大多数都能正常显示  但是往往在别的机子上运行就会出现乱码  用来学习 试用最好  但不建议产品

“utf-8”为8位的utf格式   一般的linux系统都能试用   除此外  还有“utf-16” “utf-32”等等

“GBK”为windows下的格式  还有“GB2312”等文字格式  一般GBK就能满足要求


具体来说  要让软件不出现乱码    就要文字格式正确,即文字的编码格式

 现在的QT5取消了

    QTextCodec::setCodecForTr
    QTextCodec::setCodecForCStrings
这两个函数  为了防止在不明不白的情况下随意调用  造成未知的影响

Qt5要进行中文显示其实也很简单       将要显示的中文字符串进行转即可 

QString::fromLocal8Bit("中文")

即可   这里是将8bit形式的中文字符串转化为QString  来进行显示

你可能感兴趣的:(Qt,学习之旅)