Qt程序中文经常乱码,虽然有QString::fromLocal8Bit()或者tr()函数可以将中文包起来,但是每个有中文的地方都输一遍还是有点麻烦,希望“一劳永逸”地解决。
在4.x版本中,可以使用QTextCodec类,在main函数一开始的时候做类似下面的设置:
QTextCodec::setCodecForLocale("GBK");
QTextCodec::setCodecForTr("GBK");
不过在5.x版本中这种方法不再适用了。
一个可以替代的“一劳永逸”方法是在每个.cpp文件的开头,添加下面的语句:
#pragma execution_character_set("utf-8")
注意,每个有中文显示的源文件都要添加。