带符号的字符串返回问题黑色菱形标记PHP

时间:2011-04-15 23:54:18

标签: php encoding utf html-entities

我从远程网址抓取元描述,当网址包含“£”时,它会返回为带有问号的黑色菱形在firefox中。当我在字符串上应用utf8_encode时,它会返回“£”,但是其他UTF字符将无法正确显示。我该怎么办?

1 个答案:

答案 0 :(得分:0)

您是否在页面上设置了内容类型元标记?

http://www.w3schools.com/tags/att_meta_http_equiv.asp

修改

要解决你在评论中提出的问题,我可能会做这样的事情(超快速和肮脏):

<?php

$ch = curl_init('http://www.dailymail.co.uk/health/article-1374575/Under-18s-sunbed-ban-cut-skin-cancer-toll.html');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$data = curl_exec($ch);

preg_match('/(<meta[^\n]+)(name=\"description\"[^\n])(content=\")([^\n]+)(\")/', $data, $m);
echo urlencode($m[4]);

?>

话虽如此,正确这样做的方法是解析curl_exec返回的HTML,找到合适的节点(带name="description")并返回urlencode属性的content d值