0

我正在尝试将 xml 格式的字符串解析为 DOMDocument。以下是我的代码:

mysql_connect("localhost", "MYUSERNAME", "MYPASSWORD") or die(mysql_error());
mysql_select_db("cmj_db") or die(mysql_error());

$data = mysql_query("SELECT article_id, html_data from articles where article_id=".$_GET["article_id"]) or die(mysql_error());
$dataArray = mysql_fetch_array($data);
echo 'article: ' . $dataArray['article_id'] . '<br />';

$doc = new DOMDocument;
$doc->loadXML(Encoding::toUTF8($dataArray['html_data']));

我收到错误:警告:DOMDocument::loadXML():输入不正确的 UTF-8,指示编码!字节:0x96 0x20 0x6E 0x6F

涉及特殊字符,所以我需要 UTF 编码。当我自己回显字符串时,字符看起来很好。注意到这是一连串的转换可能会有所帮助。我从 html 编码中转义了很多字符,然后将其导入 mysql 表(使用 utf-9 字符集)。如何将此字符串转换为 unicode,以便将其解析为 XML?

谢谢

4

1 回答 1

0

你试过 mb_convert_encoding() 吗? mb_convert_encoding()

如果我理解正确,您的 XML 编码是 UTF-9,而您需要 UTF-8?

mb_convert_encoding($dataArray['html_data'], 'UTF-8', 'UTF-9')
于 2013-08-13T00:15:08.003 回答