在微信分享时,如果分享的标题里面含有下划线,空格等特殊符号,会转化成&mdash等特殊符号
微信分享时应该是为了安全先把特殊符号先转换成html实体,在php里htmlentities()可以做到
<?php
$str = "A 'quote' is <b>bold</b>";
// Outputs: A 'quote' is <b>bold</b>
echo htmlentities($str);
// Outputs: A 'quote' is <b>bold</b>
echo htmlentities($str, ENT_QUOTES);
?>
这样我认为可以使用html_entity_decode()来转换回来
<?php
$orig = "I'll \"walk\" the <b>dog</b> now";
$a = htmlentities($orig);
$b = html_entity_decode($a);
echo $a; // I'll "walk" the <b>dog</b> now
echo $b; // I'll "walk" the <b>dog</b> now
?>
结果在微信分享时没有起作用,可能是我打开姿势不对,然后有在stackoverflow上找到了一个黑科技
function decodeHtml(html) {
var txt = document.createElement("textarea");
txt.innerHTML = html;
return txt.value;
}
这个方法太机智了
然后这个问题就解决了。。。