QT4.86写中文XML

网上都语焉不详。举例XML使用的时候,全部都是英文内容,当然不会失败了。尤其我还以VS2008编译,编译器的Character Set就有三种设置,配上QTextCodec::setCodecForCStrings和writer.setCodec的不同组合,还不把人烦死。

我认为,原因出在编译器看待我的源码中包括的两个字“中国”以不同的方式看待。要让它认得中国字,就得写上QTextCodec::codecForName("gbk")。不过我还是纳闷,源码文件明明以utf8方式保存了,怎么还有这个问题?

终于成功了,以GB18030编码成功的,记录下来。

    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("gb18030"));

    QFile file("test.xml");
    if(! file.open(QIODevice::ReadWrite))
        return 0;
    QXmlStreamWriter writer(&file);
    writer.setAutoFormatting(true);
    writer.writeStartDocument(); // 作用类似于创建一个xml文档,并在文档开头部分写入版本信息和编码信息。生成的文件开头标识仍是utf-8
    //writer.setCodec("UTF-8");
    writer.setCodec("gb18030");
    writer.writeStartElement("Start");
    writer.writeAttribute("animinal","cat");
    writer.writeTextElement("book","book1");
    writer.writeTextElement("book","中国");
    writer.writeEndElement();//Start
    writer.writeEndDocument();
    file.close();
时间: 2024-08-07 21:20:35

QT4.86写中文XML的相关文章

VC中使用CFile正确的追加写中文数据到文件不出现乱码-unicode字符集

CFile saveFile; CString file_name = getFileName(); BOOL isOpenOK = saveFile.Open(file_name, CFile::modeCreate | CFile::modeWrite | CFile::modeNoTruncate, NULL); if (false == isOpenOK) { MessageBox(L"文件打开失败!"); return; } //是文件保存为unicode格式 //为了uni

Dom4j 读取一个XML文件和将String写成XML文件

dom4j保存文件xml格式和读取XML文件内容,代码如下: package com.qmjs.imut import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import org.apache.log4j.Logger; import org.dom4j.Document; import org.dom4j.DocumentHelper; i

阿拉伯数字转换老写中文

首先明确银行的输入的数字是字符串还是数值类型,因为要转换为中文,你需要事先定义位数读法,比如两位数是十,三位数是千,四位数是万,然后最终有一个基准,比如最大后面都是以亿计,然后计数以亿为标准,比如9位:以及你要定义数字读法,比如1为一,2为二等待.如果是数值类型,则采用除10方法,即不断除10,比如6666,则统计次数,6666%10=6,count+=1,为六,接下来(6666/10)%10=6,count+=1,此时count为2,你定义位数为2为十,则是六十.以此类推.字符串类型的和数值相

为什么不写中文软件?

朋友都去了西班牙,或者德国,进了国外软件外包企业,最后又独立开发开发软件,写的都是共享软件,界面是英文的,或者多语言,德语,西班牙语,就是没有中文的.一般发布在国外下载站,download.com.cnet.等下载站.他们常用的聊天软件icq,googl+,aim.他们很少写中文软件,认为写中文软件没有前途,生意不好做.他们与外商打交道多,他们不用支付宝,而是用paypal,vascard银行卡.支付宝很少用.其网站界面内容是西班牙文字,后台界面是英文.令你想不到,这是中国人设计开发的.

JAVA 写中文字符串到指定文件 中文乱码 问题解决

之前试过下面代码里面的注释掉的 方法,都不行,后来想到了不如指定编码格式试试,果真可以了. String as= “中文字符”; //byte[] b = as.getBytes(); try{ File file=new File("F:test.txt"); if(!json.exists()){ file.createNewFile(); } Writer writer = new OutputStreamWriter(new FileOutputStream(file.getA

写一个xml文件到磁盘的方法

/** * 往磁盘上写一个xml文件 * * <?xml version="1.0" encoding="UTF-8" standalone="true"?> //文档的神明 <persons> //标签tag <person id=“18"> //ID是person标签的一个属性 <name>allen</name> <age>36</age> <

ios 网络请求总结加强对中文的处理 问题:URL不允许写中文 在GET请求中,相关代码段打断点以验证。

开发还是需要多多练习的 ,下面是一些常用的步骤: 一.简单说明 创建Get 请求 //    1.设置请求路径 NSString *urlStr=[NSString stringWithFormat:@"http://192.168.1.53:8080/MJServer/login?username=%@&pwd=%@",self.username.text,self.pwd.text]; NSURL *url=[NSURL URLWithString:urlStr]; //

用LyX写中文幻灯片

虽然在虚拟机装了texlive以备使用,但是在不动CTeX的情况下,是否能使用LyX写中文幻灯片呢.网上只是寥寥几篇大神们在Linux用LyX的博文. 最近把论文交完写幻灯片,于是也把这个想法尝试了一下. 首先LyX有自己的英文幻灯片模板,但是如果直接往里面敲入中文是不能直接进行编译的. 于是研究了两个小时,终于取得突破. 首先“文档”->"语言“中修改为汉语,Unicode(CJK)(utf8) 字体里,CJK字体可增加主字体名,如song,kai等 在导言区加入 在“文档”->&

在overleaf上使用LaTeX写中文论文出现错误:The font “XXX” cannot be found

在overleaf上使用LaTeX写中文论文,编译时报错:The font “XXX” cannot be found 首先:确保compiler编译器是选择 “XeLaTeX” 其次:了解到 诸如: {Times New Roman PS Std} .{Mosquito Formal Std} .{Lucida Sans Typewriter Std}.{Lucida Sans Typewriter} 等这些英文字体 和 {Adobe Song Std} .{Adobe Song Std}.{