• 5718阅读
  • 5回复

[提问]从文件中读取中文字符的问题 [复制链接]

上一主题 下一主题
离线phu727
 
只看楼主 倒序阅读 楼主  发表于: 2011-05-16
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2013-04-01) —
最近设计的程序需要从一个纯文本中读取中文字符,之后将其显示在qlabel中(alabel->setText(string)),纯文本文件在fedora14下采用utf8编码方式手工输入,编译后在pc机上正常运行,交叉编译之后,在2.6内核的linux系统下的2410上运行,从文件中读出的中文字符在显示时出现乱码,但是使用aLabel->setText("中文")的部分显示正常。

代码中已经加入QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));      
    QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));  
不知道这个问题怎么解决阿?困扰了好几天了!谢谢大家!
离线XChinux

只看该作者 1楼 发表于: 2011-05-16
你读文件的代码是如何写的?
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线phu727
只看该作者 2楼 发表于: 2011-05-16
回 1楼(XChinux) 的帖子
Form3_info.open(IO_ReadOnly);
QTextStream mystream(&Form3_info);                    
    while(!mystream.atEnd())
    {
    lines += mystream.readLine();
    }        
其中的lines是一个qstringlist
离线phu727
只看该作者 3楼 发表于: 2011-05-16
额,没人答我阿!
离线dbzhang800

只看该作者 4楼 发表于: 2011-05-16
引用第3楼phu727于2011-05-16 20:16发表的  :
额,没人答我阿!

将你的测试程序在保持完整且能体现你问题的情况下,精简到10-20左右。然后贴出
离线jdwx

只看该作者 5楼 发表于: 2011-05-16
Form3_info.open(IO_ReadOnly);
QTextStream mystream(&Form3_info);  
这里加上QTextCodec的那部分                
    while(!mystream.atEnd())
    {
    lines += mystream.readLine();
好像应该这么用:lines << mystream.readLine();
    }        
其中的lines是一个qstringlist
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
快速回复
限100 字节
 
上一个 下一个