在程序main.cpp中加入以下代码
#include
int main(int argc, char **argv)
{
QTextCodec *codec = QTextCodec::codecForName("GB2312");
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForCStrings(codec);
QTextCodec::setCodecForTr(codec);
}
这样在程序其他地方就可以使用中文了, tr(“中文”) 或者直接使用“中文了;
解决读取ini文件中中文乱码
QSettings settings("xxxx.ini",QSettings::IniFormat);
settings.setIniCodec(QTextCodec::codecForName("GB2312")); //在此添加设置,即可读写ini文件中的中文
settings.beginGroup("company");
//...
settings.endGroup();
解决读取中文文件中文的乱码
QFile file("xxxx.txt");
QTextStream stream(file,QIODevice::ReadOnly);
stream.setCodeC( QTextCodec::codecForName("GB2312") );
stream.readAll();
注:这篇文章以上是从网上搜索而来,本是想在 *.ini 文件中解决读取中文信息,可是上诉提及的 void QSettings::setIniCodec ( QTextCodec * codec ) 函数是Qt4.5才涉及到的,一直使用Qt4.3.1开发.... ini文件还在乱码中!
在Qt程序中使用Windows API读取ini设置信息:
#include
char cfg_IniName[] = "..\\bin\\config.ini";
char buf[1024];
::GetPrivateProfileStringA("local", "name", "error", buf, 1024, cfg_IniName);
QString strPcName = QString::fromLocal8Bit(buf);
::GetPrivateProfileInt(L"local", L"port", 0, L"..\\bin\\config.ini");
在Qt程序中使用Windows API写入ini设置信息:
#include ;
#include
USES_CONVERSION;
char cfg_IniName[] = "..\\bin\\config.ini";
LPCTSTR lpLocal = A2W("local");
LPCTSTR lpName = A2W("name");
LPCTSTR lpPcName = A2W("vic.MINg");
LPCTSTR lpFile = A2W(cfg_IniName);
::WritePrivateProfileString ( lpLocal, lpName, lpPcName, lpFile);
建站咨询热线
029-33273980