我正在使用PHP
函数的这一部分呈现RSS提要:
echo "<li><a target='_blank' href='$item_link'>$item_title</a></li>";
使用示例,在HTML
:
<li>
<a target='_blank' href='http://www.internationalaccountingbulletin.com/news/ey-shinnihon-will-audit-toshibas-corrected-accounts-while-under-investigation-4639900'>
EY ShinNihon will audit Toshiba’s corrected accounts… while under investigation
</a>
</li>
当涉及到使用的符号时,标题存在很大的差异。
输出此
EY ShinNihon将在调查期间审核东芝的更正帐户
作为
带有撇号和椭圆(以及其他)的EY ShinNihon将在调查期间审核东芝的更正帐户
是以â€
为前缀的各种符号。
如何将这些符号转换回PHP
?
答案 0 :(得分:1)
选择符合您编辑内容的字符编码,请查看此网站以了解详情。 http://htmlpurifier.org/docs/enduser-utf8.html
答案 1 :(得分:1)
我拿出了charset meta标签,因为我明白这对速度/ SEO来说是不好的做法。重新安装时,问题得到纠正,谢谢。但是,有没有更好的做法?通过PHP设置标题 - 这是令人难以忍受的还是更糟?
所以你的问题是你在某种编码中输出文本,而没有通知浏览器你给它的编码,因此浏览器错误解释了错误编码的文本,导致垃圾字符。您始终需要告知客户您要向其发送文本的编码。通过HTTP执行此操作的主要方法是HTTP Content-Type
标头。这样,浏览器就会在实际接收内容之前获知其收到的内容类型。这完全是应该的。
HTML <meta>
代码只是后备。您应该包含它们,因为它们有助于指定HTML文档的编码,如果它在HTTP上下文之外使用(例如,您只是从硬盘打开它,不涉及HTTP,没有HTTP { {1}}标头,无法指定编码...除了HTML Content-Type
标记之外)。但同样,它应该只是一个后备。搜索引擎优化或速度绝对没有问题;无论你从哪里得到它,它都是纯粹的FUD。
答案 2 :(得分:0)
这对你有用。 首先只使用mb_convert_encoding()函数,它会为你做好准备。
$item_title = addslashes('this is your text');
$item_title = mb_convert_encoding($item_title, "HTML-ENTITIES", 'UTF-8');