• 5821阅读
  • 3回复

一段无法跨平台的代码 [复制链接]

上一主题 下一主题
离线zzh
 

只看楼主 倒序阅读 楼主  发表于: 2007-12-26
— 本帖被 XChinux 执行加亮操作(2008-07-17) —
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等都不行,要么程序自动退出,要么读进来的全是乱码,怎么办呀?
离线pennyge

只看该作者 1楼 发表于: 2007-12-26
文件系统默认编码不同吧
离线shiroki

只看该作者 2楼 发表于: 2007-12-27
我在qtopiaorg里给你回了一个,你可以试试
--
shiro is White
ki is tree
http://www.cuteqt.com
论坛 http://www.cuteqt.com/bbs
博客 http://www.cuteqt.com/blog
博客镜像: http://sites.cuteqt.com/cuteqt
Linux/Qt/嵌入式讨论群 http://qun.qq.com/air/5699823
离线foxyz

只看该作者 3楼 发表于: 2007-12-30
建议看看QObject类里边的tr函数或者trutf8
快速回复
限100 字节
 
上一个 下一个