php解析xml提示Invalid byte 1 of 1-byte UTF-8 sequence错误的处理方法

Saadiya ·
更新时间:2024-11-10
· 694 次阅读

错误提示
Invalid byte 1 of 1-byte UTF-8 sequence
原因分析
在中文版的window下java的默认的编码为GBK,也就是所虽然我们标识了要将xml保存为utf-8格式但实际上文件是以GBK格式来保存的,所以这也就是为什么能够我们使用GBK、GB2312编码来生成xml文件能正确的被解析,而以UTF-8格式生成的文件不能被xml解析器所解析的原因。

把xml的encoding属性值UTF-8改为UTF8
org.xml.sax.SAXParseException: Content is not allowed in trailing section
把先要解析和字符串trim()一下即可解决问题。
解决:
1、最简单就是把<?xml version="1.0" encoding="UTF-8"?>改成<?xml version="1.0" encoding="gbk"?>
2、或者把xml打开另存的时候把字符集改为UTF-8后保存
或改程序
代码如下:
 SAXReader reader = new SAXReader(); 
  org.dom4j.Document document = reader.read("D:\ha.xml"); 
  OutputFormat of = new OutputFormat(); 
  of.setEncoding("UTF-8"); //改变编码方式 
XMLWriter writer = new XMLWriter(new FileWriter "d:\dom4j.xml"), of);
 

您可能感兴趣的文章:php输出xml必须header的解决方法php的XML文件解释类应用实例php操作XML、读取数据和写入数据的实现代码php的SimpleXML方法读写XML接口文件实例解析php的webservice的wsdl的XML无法显示问题的解决方法php中simplexml_load_string使用实例分享PHP将XML转数组过程详解PHP生成sitemap.xml地图函数php json与xml序列化/反序列化php 修改、增加xml结点属性的实现代码php中simplexml_load_file函数用法实例



XML byte 方法 PHP

需要 登录 后方可回复, 如果你还没有账号请 注册新账号