PHP DOMDocument不会将XML字符串解析为UTF-8

时间:2013-08-12 19:22:12

标签: php mysql xml unicode

我正在尝试将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 charset)。如何将此字符串转换为unicode,以便将其解析为XML?

由于

1 个答案:

答案 0 :(得分:0)

你试过mb_convert_encoding()吗? mb_convert_encoding()

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

mb_convert_encoding($dataArray['html_data'], 'UTF-8', 'UTF-9')