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

错误提示
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);
 

时间: 2024-09-25 10:04:57

php解析xml提示Invalid byte 1 of 1-byte UTF-8 sequence错误的处理方法_php技巧的相关文章

php提示Failed to write session data错误的解决方法_php技巧

本文较为详细的分析了php提示Failed to write session data错误的解决方法.分享给大家供大家参考.具体方法如下: 一.问题: 提示信息:Warning: Failed to write session data (files).Please verify that the current setting of session.save_path is correct () in Unknown on line 0 二.解决方法: 代码如下: 复制代码 代码如下: ses

腾讯微博提示missing parameter errorcode 102 错误的解决方法_php技巧

本文实例讲述了腾讯微博提示missing parameter errorcode 102 错误的解决方法.分享给大家供大家参考.具体分析如下: 今天在调试腾讯微博接口时,出现一个错误,找了网上都没有相关资料,最后自己调通了,故发布此文,避免各位phper重复造轮子. 错误信息,代码如下: 复制代码 代码如下: stdClass Object (     [data] =>      [detailerrinfo] => stdClass Object         (            

dedecms后台验证码总提示错误的解决方法_php技巧

直接用下面的代码,覆盖dede中的login.php即可 复制代码 代码如下: <? require_once(dirname(__FILE__)."/../include/config_base.php"); require_once(dirname(__FILE__)."/../include/inc_userlogin.php"); if(empty($dopost)) $dopost=""; //------------------

php遍历解析xml字符串的方法_php技巧

本文实例讲述了php遍历解析xml字符串的方法.分享给大家供大家参考,具体如下: <?php $content = <<<XML <?xml version="1.0" encoding="UTF-8"?> <test> <global_setting> <ping_protocol>HTTP</ping_protocol> <ping_port>80</ping_

PHP生成和获取XML格式数据的方法_php技巧

本文实例讲述了PHP生成和获取XML格式数据的方法.分享给大家供大家参考,具体如下: 在做数据接口时,我们通常要获取第三方数据接口或者给第三方提供数据接口,而这些数据格式通常是以XML或者JSON格式传输,这里将介绍如何使用PHP生成XML格式数据供第三方调用以及如何获取第三方提供的XML数据. 生成XML格式数据 我们假设系统中有一张学生信息表student,需要提供给第三方调用,并有id,name,sex,age分别记录学生的姓名.性别.年龄等信息. CREATE TABLE `studen

php通过正则表达式记取数据来读取xml的方法_php技巧

本文实例讲述了php通过正则表达式记取数据来读取xml的方法.分享给大家供大家参考.具体分析如下: xml源文件如下: <?xml version="1.0 encoding="UTF-8"?> <humans> <zhangying> <name>张映</name> <sex>男</sex> <old>28</old> </zhangying> <t

详解PHP原生DOM对象操作XML的方法_php技巧

一.创建 创建一个新的XML文件,并且写入一些数据到这个XML文件中. /* * 创建xml文件 */ $info = array( array('obj' => 'power','info' => 'power is shutdown'), array('obj' => 'memcache','info' => 'memcache used than 90%'), array('obj' => 'cpu','info' => 'cpu used than 95%'),

php使用simplexml_load_file加载XML文件并显示XML的方法_php技巧

本文实例讲述了php使用simplexml_load_file加载XML文件并显示XML的方法.分享给大家供大家参考.具体实现方法如下: <?php $xml = simplexml_load_file("sample.xml"); echo htmlspecialchars($xml->asXML()); ?> sample.xml文件内容如下 <library> <book> <title>A</title> <

thinkphp在php7环境下提示Cannot use ‘String’ as class name as it is reserved的解决方法_php实例

本文实例讲述了thinkphp在php7环境下提示Cannot use 'String' as class name as it is reserved的解决方法.分享给大家供大家参考,具体如下: 我有一网站之前用php7运行thinkphp没有什么问题,但是最近发现开启验证码的时候发现有错误 Cannot use 'String' as class name as it is reserved 在google baidu搜索了一下还是没有解决方法 于是自己动手解决,看来我是第一个分享出来的人