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

 更新时间:2013年11月14日 09:35:49   作者:  
在利用php解析xml时提示Invalid byte 1 of 1-byte UTF-8 sequence错误了,这个问题我百度查实说是编码问题,结果我把编码处理一下果然KO了,下面我来分享一下解决办法

错误提示
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中RESTful API的使用方法详解

    php中RESTful API的使用方法详解

    RESTful API是一种软件架构风格,它将资源(Resource)作为核心概念,并通过一组统一的接口对资源进行操作,下面我们就来学习一下RESTful API在PHP中的具体使用吧
    2023-11-11
  • PHP输入流php://input介绍

    PHP输入流php://input介绍

    在使用xml-rpc的时候,server端获取client数据,主要是通过php输入流input,而不是$_POST数组。所以,这里主要探讨php输入流php://input
    2012-09-09
  • 递归删除一个节点以及该节点下的所有节点示例

    递归删除一个节点以及该节点下的所有节点示例

    一段递归删除一个部门以及它的所有子部门的一段代码。仅供大家参考和自己以后备用
    2014-03-03
  • PHP使用两个栈实现队列功能的方法

    PHP使用两个栈实现队列功能的方法

    这篇文章主要介绍了PHP使用两个栈实现队列功能的方法,结合实例形式分析了php基于两个栈实现队列功能的思路与具体操作技巧,需要的朋友可以参考下
    2018-01-01
  • php多进程应用场景实例详解

    php多进程应用场景实例详解

    这篇文章主要介绍了php多进程应用,结合具体实例形式详细分析了php多进程模块依赖pcntl扩展安装、使用相关操作技巧与注意事项,需要的朋友可以参考下
    2019-07-07
  • PHP函数常用用法小结

    PHP函数常用用法小结

    由于PHP是一种解释型语言,所以函数编写和调用很是方便。总结一下魔术函数、嵌套函数、匿名函数、函数调用方式和函数参数使用等。
    2010-02-02
  • PHP贪婪算法解决0-1背包问题实例分析

    PHP贪婪算法解决0-1背包问题实例分析

    这篇文章主要介绍了PHP贪婪算法解决0-1背包问题,实例分析了贪婪算法的原理与背包问题的实现技巧,需要的朋友可以参考下
    2015-03-03
  • php从右向左/从左向右截取字符串的实现方法

    php从右向左/从左向右截取字符串的实现方法

    我先学的的asp,asp里截取字符串的函数很简单,也容易理解:left和right而php里从左向右截取和从右向左截取都是一个函数:substr
    2011-11-11
  • PHP中error_reporting()用法详解

    PHP中error_reporting()用法详解

    php中我们对错误的处理会常用到error_reporting函数了,大家可以看到最多的是error_reporting(E_ALL ^ E_NOTICE)了,这个到底什么意思呢,下面我来来看看。
    2015-08-08
  • 图解MYSQL的安装和数据升级

    图解MYSQL的安装和数据升级

    图解MYSQL的安装和数据升级...
    2006-11-11

最新评论