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 に答える