万企互联-专注高端网站建设
扫描关注万企互联微信公众账号

扫一扫微信二维码

Qt中解决乱码的方法

程序设计2013/7/16 1602

 

在程序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);

 

文章分类
程序设计
打开微信,点击底部的“发现”,使用“扫一扫”即可将网页分享至朋友圈。
万企互联 咸阳网站建设 咸阳微信营销 IDC主机测评 IP地址查询 万企工具 四六互联 四六技术网 品多技术网 超越彼岸BEYOND 六佰号 秦川云 秦川云影院