当我从此网站的元描述标记中检索引号时:http://mashable.com/2011/04/14/google-computers-regret/
“遗憾”一词的引号作为问号返回。
我使用以下代码,而$ str是返回的元数据:
if(mb_detect_encoding($str, 'UTF-8, ISO-8859-1', true) != 'ISO-8859-1') $str = utf8_decode($str);
$str = strtr($str, get_html_translation_table(HTML_ENTITIES));
$str = strip_tags(html_entity_decode(htmlspecialchars_decode($str, ENT_NOQUOTES), ENT_NOQUOTES, "UTF-8"));
$str = html_entity_decode($str, ENT_QUOTES,"UTF-8");
我该如何解决这个问题?
答案 0 :(得分:0)
这是一个原始修复,我相信有更好的方法,但是:
$str = str_replace( array( "“" , "”" ) , '"' , $str );
应该用简单的引号替换这些样式化的引号,并防止出现问号。
(很高兴学到比这个笨重更好,更聪明的解决方案。)
根据以下评论进行修订:
$str = str_replace( array("\xe2\x80\x9c", "\xe2\x80\x9d", "\xe2\x80\x98", "\xe2\x80\x99") , '"' , $str );
使用此函数可以用相同的替换str替换多个模式(保存在数组中) - 比必须填充具有相同内容的数组更好,或者在不需要时创建一个笨重的函数。
答案 1 :(得分:0)
将生成的HTML输出为UTF-8。