0

我一直遇到来自 XML API 的字符编码问题,似乎无法解决问题。我想知道是否有人会知道该怎么做。我尝试了以下代码,它们都产生了一些奇怪的字符编码问题。

代码 #1

$xml_url = "http://myurl.com/123.xml";
$xml = simplexml_load_file($xml_url);

密码 #2

$xml_url = "http://myurl.com/123.xml";
$contents = file_get_contents($xml_url);
$xml = new SimpleXMLElement($contents);

撇号等一些字符出来的方式是这样的

strengthening resumés

这有数百个错误。我的代码顶部看起来像这样

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

我已经尝试将其删除并将其作为 HTML 5 放置,但我似乎什么也得不到。我尝试过其他拉丁字符编码等,但它变得越来越糟。有没有人对如何解决这个问题有任何想法?

4

1 回答 1

0

当 UTF-8 编码文本é被视为 ISO-8859-1 编码文本时,它显示为é.

如果我没记错的话,SimpleXML 仅适用于 UTF-8 编码的数据。因此,如果您的数据不是 UTF-8,您需要对您读入的所有文件以及添加到文档中的文本字符串进行编码(在对它们使用 SimpleXML 方法之前)。您可以使用iconv()orutf8_encode()进行转换。

如果您的代码包含非 ASCII 文字,还要检查代码文件的编码。

于 2013-02-19T19:44:15.960 回答