首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >错误:“输入不是正确的UTF-8,指示编码!”使用PHP的simplexml_load_string

错误:“输入不是正确的UTF-8,指示编码!”使用PHP的simplexml_load_string
EN

Stack Overflow用户
提问于 2010-03-24 20:35:15
回答 9查看 169.7K关注 0票数 63

我得到了一个错误:

parser error : Input is not proper UTF-8, indicate encoding ! Bytes: 0xED 0x6E 0x2C 0x20

尝试使用来自第三方来源的simplexml_load_string处理XML响应时。原始XML响应确实声明了内容类型:

<?xml version="1.0" encoding="UTF-8"?>

然而,XML似乎并不是真正的UTF-8。内容的语言是西班牙语,在XML中包含像Dublín这样的单词。

我无法让第三方整理出他们的XML。

如何预处理XML并修复编码不兼容问题?

有没有一种方法可以检测XML文件的正确编码?

EN

回答 9

Stack Overflow用户

发布于 2011-01-02 05:14:31

我用以下方法解决了这个问题

代码语言:javascript
复制
$content = utf8_encode(file_get_contents('http://example.com/rss.xml'));
$xml = simplexml_load_string($content);
票数 53
EN

Stack Overflow用户

发布于 2013-12-02 21:12:39

如果您确定您的xml是以UTF-8编码的,但包含错误字符,则可以使用此函数来更正它们:

代码语言:javascript
复制
$content = iconv('UTF-8', 'UTF-8//IGNORE', $content);
票数 16
EN

Stack Overflow用户

发布于 2011-04-03 09:10:22

您可以简单地将这行代码放在mysql_connect语句后面,而不是使用javascript:

代码语言:javascript
复制
mysql_set_charset('utf8',$connection);

干杯。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2507608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档