我试过网上给的一些批处理,或者是编码转换工具,XML文件转为ANSI编码打开都是乱码。
------------------------
我想要的效果是,UFT-8编码的XML文件转为ANSI编码,显示的中文还是正常的。
-------------------------
我用NOTEPAD++ 打开一个XML,转为ANSI编码,文字显示的是正常的。
因为我需要批量转码成百的XML文件爱你,这个方法实在不可行,请大神指点!其中一个xml文件代码:
<?xml version="1.0" encoding="UTF-8"?><extraction><clueid>168000098</clueid><fullpath><![CDATA[URL]]></fullpath><theme>cxw_taobao_njfluke_xx</theme><middle>default</middle><createdate>2013-5-22 14:32:12</createdate><baseURI><bucketBaseURI><bucketName>宝贝</bucketName><uri><![CDATA[URL]]></uri></bucketBaseURI></baseURI>
<table><item><td>美国 原装 正品 FLUKE 福禄克 附件 TL71 测试 表笔 导线</td><td1>160.00</td1><td2>0</td2></item></table></extraction>
高分求大神!关于XML文件(有中文)编码UTF-8批量转成ANSI的问题
答案:3 悬赏:10 手机版
解决时间 2021-01-27 17:50
- 提问者网友:嗝是迷路的屁
- 2021-01-27 06:29
最佳答案
- 五星知识达人网友:罪歌
- 2021-01-27 08:06
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
public class dDDd {
private XMLWriter writer;
public void updateCreateXml(String mediaFile ) throws Exception {
File flle = new File(mediaFile);
SAXReader reader = new SAXReader();
if (flle.exists()) {
Document document;
try {
document = reader.read(flle);
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("ISO8859-1");// 设置XML文件的编码格式
writer = new XMLWriter(new OutputStreamWriter(new FileOutputStream(flle),"ISO8859-1"), format);
writer.write(document);
writer.close();
} catch (Exception ex) {
// TODO Auto-generated catch block
throw ex;
}
}
}
public static void main(String[] args) {
dDDd A = new dDDd();
try {
A.updateCreateXml("C:\\Users\\Administrator\\Desktop\\zhangs\\main\\1.xml");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
你在生成xml 文件时就使用iso8859-1生成 在装换就没问题
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
public class dDDd {
private XMLWriter writer;
public void updateCreateXml(String mediaFile ) throws Exception {
File flle = new File(mediaFile);
SAXReader reader = new SAXReader();
if (flle.exists()) {
Document document;
try {
document = reader.read(flle);
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("ISO8859-1");// 设置XML文件的编码格式
writer = new XMLWriter(new OutputStreamWriter(new FileOutputStream(flle),"ISO8859-1"), format);
writer.write(document);
writer.close();
} catch (Exception ex) {
// TODO Auto-generated catch block
throw ex;
}
}
}
public static void main(String[] args) {
dDDd A = new dDDd();
try {
A.updateCreateXml("C:\\Users\\Administrator\\Desktop\\zhangs\\main\\1.xml");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
你在生成xml 文件时就使用iso8859-1生成 在装换就没问题
全部回答
- 1楼网友:荒野風
- 2021-01-27 09:47
先转成unicode然后再调用
byte[] filedata = system.io.file.readallbytes(@"c:\abc.xml");
string filestr = encoding.default.getstring(filedata);
doc.loadxml(filestr);
代码是随便写的,程序里是不是肯定不能运行不知道
- 2楼网友:行雁书
- 2021-01-27 08:11
下载一个convertZ软件~~然后转换~~
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯