防止PHP的DOMDocument改变字符编码

时间:2015-12-10 18:22:16

标签: php domdocument

如何防止DOMDocument更改字符编码?请参阅以下内容,并注意如何更改为â

<?php
    $message = "<p>Hello “something in quotes” goodby</p>";
    echo("pre message: $message\n");
    $doc = new DOMDocument();
    $doc->loadHTML($message);
    $body = $doc->getElementsByTagName('body')->item(0);
    $message=$doc->saveHTML($body);
    echo("Modified message: $message\n");

输出:

pre message: <p>Hello “something in quotes” goodby</p>
Modified message: <body><p>Hello âsomething in quotesâ goodby</p></body>

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题,并使用iconv解决了这些问题并强制进行编码。

$new_string = iconv("UTF-8", "UTF-8//TRANSLIT",$old_string);

here's the php man page on it.

经过进一步调查后,看起来这是DOM中的一个错误:文档。

https://bugs.php.net/bug.php?id=32547