zoukankan      html  css  js  c++  java
  • php加载xml编码错误,“Error: Input is not proper UTF-8, indicate encoding! ”

    最近在给php中解析xml的时候,抛出一个错误:

    "Warning: DOMDocument::load(): Input is not proper UTF-8, indicate encoding ! Bytes: 0xBB 0xB6 0xD3 0xAD in file:/E:/phpWork/ShopProject/SendCMS.xml, line: 19 inE:phpWorkShopProjectxml.php on line 4"

    意思是说DOMDocument的load函数在load的时候出现错误,然后我查看了我的xml文件,文件如下

     1 <?xml version="1.0" ?>
     2 <Package>
     3 <Header>
     4 <RoadNo>12345</RoadNo>
     5 <DataType>48</DataType>
     6 <ModuleNO>12345</ModuleNO>
     7 <SourceIP>127.0.0.1</SourceIP >
     8 <SourcePort>11000</SourcePort >
     9 <UserID>96998</UserID>
    10 <RecordTime>2014-11-19 08:08:08:111</RecordTime>
    11 <Imperative>1</Imperative>
    12 <Result  Flag="-1" Msg=" " />
    13 </Header>
    14 <DeviceList>
    15 <DevItem DeviceID="5100001"/>
    16 <DevItem DeviceID="5100002"/>
    17 </DeviceList>
    18 <VisionData>
    19 <VisionItem TextInfo="欢迎驶入" PicNo="" FontName="宋体" FontSize="10" FontColor="黄" FontFormat="居中" Interval="100" Effect="1" /> 
    20 <VisionItem TextInfo="减速慢行" PicNo="" FontName="宋体" FontSize="10" FontColor="黄" FontFormat="居中" Interval="100" Effect="1" /> 
    21 </VisionData >
    22 </Package>
    SendCMS.xml

    然后发现类型定义没有定义encoding,这里我猜是因为有汉字,所以默认为utf-8编码,然后我就在网上找方法,果真,在stack over flow中找到了一个方法,分别如下

    方法1:

    解决方案:读取文本内容,然后将文本内容进行编码转换,用iconv函数来进行转换,具体的代码如下

    //读取文件内容
    $myfile = fopen("SendCMS.xml",'r');
    $content = fread($myfile,filesize("SendCMS.xml"));
    fclose($myfile);
    
    $content = iconv('UTF-8', 'UTF-8//IGNORE', $content);
    $xmldoc -> loadXML($content );
    print $xmldoc->saveXML();
    方法1,采用iconv函数

    总体来说,这个解决方案都不错,可以采用。

    原文地址:Stack OverFlow

  • 相关阅读:
    linux /dev 常见特殊设备介绍与应用[loop,null,zero,full,random]
    由web程序出现乱码开始挖掘(Bom头、字符集与乱码)
    linux shell命令快捷获得系统帮助(一)[manpages定义规范]
    定期分割tomcat输出文件 catalina.out
    readyState的五种状态
    C# FileSystemWatcher
    不用第三个变量实现a,b的值交换
    我的eWork,我能赚钱的SOHO空间
    如何网上炒股
    没有为扩展名“.html”注册的生成提供程序
  • 原文地址:https://www.cnblogs.com/ningheshutong/p/5142729.html
Copyright © 2011-2022 走看看