解决应用程序中中文设置
在程序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 <Windows.h>
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 <Windows.h>; #include <AtlBase.h> 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);
|
哈哈,例子也没带中文,让大家木乃了~