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

2015-01-24信息快讯网

在利用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); 
 

CodeIgniter CLI模式简介
php的SimpleXML方法读写XML接口文件实例解析
Thinkphp中Create方法深入探究
浅析ThinkPHP中execute和query方法的区别
PHP中使用gettext解决国际化问题的例子(i18n)
php smarty truncate UTF8乱码问题解决办法
Codeigniter整合Tank Auth权限类库详解
php自动识别文件编码并转换为UTF-8的方法
CI使用Tank Auth转移数据库导致密码用户错误的解决办法
php 判断网页是否是utf8编码的方法
PHP批量删除、清除UTF-8文件BOM头的代码实例
ThinkPHP使用UTFWry地址库进行IP定位实例
php的webservice的wsdl的XML无法显示问题的解决方法
PHP strip_tags()去除HTML、XML以及PHP的标签介绍
php中simplexml_load_string使用实例分享
json的键名为数字时的调用方式(示例代码)
php遍历目录与文件夹的多种方法详解
PHP PDOStatement:bindParam插入数据错误问题分析
CodeIgniter生成网站sitemap地图的方法
PHP将XML转数组过程详解
PHP生成sitemap.xml地图函数
php5.3 不支持 session_register() 此函数已启用的解决方法
session在php5.3中的变化 session_is_registered() is deprecated in
php中autoload的用法总结
PHP中spl_autoload_register函数的用法总结
php字符编码转换之gb2312转为utf8
php json与xml序列化/反序列化
php加密解密函数authcode的用法详细解析
php操作xml
php 修改、增加xml结点属性的实现代码
PHP截断标题且兼容utf8和gb2312编码
JoshChen_web格式编码UTF8-无BOM的小细节分析
如何使用PHP批量去除文件UTF8 BOM信息
基于php导出到Excel或CSV的详解(附utf8、gbk 编码转换)
©2014-2024 dbsqp.com