void geren::dakai()
{
QString wenjianming=QFileDialog::getOpenFileName(this,tr("xuanze"),"./file");
QFile wenjian(wenjianming);
if (!wenjian.open(QIODevice::ReadOnly | QIODevice::Text))
return;
while (!wenjian.atEnd()) {
QString s1 = wenjian.readLine();
QString s2 = wenjian.readLine();
QString s3 = wenjian.readLine();
QString s4 = wenjian.readLine();
QString s5 = wenjian.readLine();
shenfenzhenghao->setText(s1.trimmed());
QByteArray zi="";
zi.append(s2);
QTextCodec *bianma = QTextCodec::codecForName("UTF-8");
QString zi2 = bianma->toUnicode(zi);
xingming->setText(zi2.trimmed());
gerenzhanghu->setText(s3.trimmed());
zi="";
zi.append(s4);
QString zi3 = bianma->toUnicode(zi);
danwei->setText(zi3.trimmed());
shijian->setText(s5.trimmed());
}
}
我写了一个程序,程序将我输入的中国字保存在本地磁盘上,然后程序还可以正常的读入这些内容,上面的代码是槽,就是负责读入数据的,在ubuntu 7.10 qt4.3.3上可以正常运行,读进来的数据是中国字,可同样的程序在vista qt4.3.3环境下,就变成了乱码,除了utf-8外还用过GB2312 GB18030 GB18030-0 GBK CP936等都不行,要么程序自动退出,要么读进来的全是乱码,怎么办呀?