【问题标题】:prevent PHP's DOMDocument from changing character encoding [duplicate]防止PHP的DOMDocument改变字符编码[重复]
【发布时间】:2016-03-16 12:15:58
【问题描述】:

如何防止 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>

【问题讨论】:

  • $doc->loadHTML(mb_convert_encoding($message, 'HTML-ENTITIES', 'UTF-8'));,从上面的帖子复制,它的工作原理
  • 谢谢安德鲁。是的,它确实有效。
  • 没问题 :),是的,我自己尝试了几次,下面的答案,只有 mb_conv... 有效:S

标签: php domdocument


【解决方案1】:

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

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

here's the php man page on it.

经过进一步调查,这似乎是 DOM:Document 中的一个错误。

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

【讨论】:

猜你喜欢
  • 2010-10-21
  • 1970-01-01
  • 1970-01-01
  • 2011-10-23
  • 2019-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多