【发布时间】:2013-08-12 19:22:11
【问题描述】:
我正在尝试将 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(): Input is not proper UTF-8,指示编码!字节数:0x96 0x20 0x6E 0x6F
涉及特殊字符,所以我需要 UTF 编码。当我自己回显字符串时,字符看起来很好。注意到这是一连串的转换可能会有所帮助。我从 html 编码中转义了很多字符,然后将其导入 mysql 表(使用 utf-9 字符集)。如何将此字符串转换为 unicode,以便将其解析为 XML?
谢谢
【问题讨论】:
-
你需要知道表中的数据是不是UTF-8,mysql_connect()的连接的编码是什么。如果它已经是 UTF-8,您可能会通过
Encoding::toUTF8对其进行多次转码