• 5364阅读
  • 13回复

[提问]为什么我生成的xml文件不能显示中文 [复制链接]

上一主题 下一主题
 
只看楼主 倒序阅读 楼主  发表于: 2012-12-31
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2013-04-01) —
各位大侠,为什么我生成的xml文件里面的中文显示乱码的,其他地方的中文都不是乱码的,main函数里面我加了
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
QTextCodec::setCodecForTr(codec);
QTextCodec::setCodecForCStrings(codec );

然后我定义的控件
ui->pushButton->setText(tr("姓名"));
这样运行后pushbutton显示的就是 中文 姓名2个字,xml是怎么回事啊?
谢谢了
只看该作者 1楼 发表于: 2012-12-31
我用XML Editor打开,里面显示的中文就不是乱码的,双击打开就是乱码的。
离线roywillow

只看该作者 2楼 发表于: 2012-12-31
请先确定你添加的那两行setCodec是做什么用的
另外xml的编码是另外一回事
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线atomspace

只看该作者 3楼 发表于: 2013-01-02
<?xml version="1.0" encoding="gb2312"?>
把首行中的编码换成gb2312 试试看
只看该作者 4楼 发表于: 2013-01-04
回 3楼(atomspace) 的帖子
谢谢,生成的xml文件不乱码了
只看该作者 5楼 发表于: 2013-01-04
回 3楼(atomspace) 的帖子
又遇到问题了,现在读取xml中的中文是显示是乱码的,不知道怎么弄。
如果读取的是英文是没问题的,如下
     QString j=qPrintable(f8.attribute("value"));
           ui->pushButton->setText(j);将节点value的值赋给pushbutton是可以的
是中文的话
QString j=qPrintable(f9.attribute("value"));
ui->pushButton_2->setText(j);此时puahbutton_2显示不是中文而是乱码的,此时的xml文件中的中文是不乱码的。
离线wjlsmail

只看该作者 6楼 发表于: 2013-01-04
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB2312"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB2312"));
离线atomspace

只看该作者 7楼 发表于: 2013-01-04
你main函数中QTextCodec *codec = QTextCodec::codecForName("UTF-8");的UTF-8改成GB2312
只看该作者 8楼 发表于: 2013-01-07
回 6楼(wjlsmail) 的帖子
谢谢,你试过可以吗?怎么我换成GB2312读出来的中文也是乱码的
只看该作者 9楼 发表于: 2013-01-07
回 7楼(atomspace) 的帖子
谢谢,请问你试过可以吗?怎么我换成GB2312读出来的中文也是乱码的
只看该作者 10楼 发表于: 2013-01-08
回 5楼(可爱的孩子) 的帖子
解决了
离线atomspace

只看该作者 11楼 发表于: 2013-01-08
怎么解决的?分享一下啊
只看该作者 12楼 发表于: 2013-01-08
回 11楼(atomspace) 的帖子
是这样的,因为我刚开始的xml文件中是没有<?xml version="1.0" encoding="gb2312"?>这句话的,所以读中文老乱码,只要在xml文件中加上这一句,读出来的中文就不乱码了。
分享下
离线roywillow

只看该作者 13楼 发表于: 2013-01-08
我还是建议你用utf-8编码保存xml
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
快速回复
限100 字节
 
上一个 下一个