2011-04-15 103 views

回答

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")并返回content属性的urlencode d值

+0

是的,它被设置为UTF-8。当我不应用任何东西时,字符串会正确返回编码UTF-8字符,除了英镑符号 – John 2011-04-15 23:58:49

+0

您是否尝试过HTML编码?该字符的代码是£ – 2011-04-16 00:05:50

+0

我已经尝试过,但然后字符串切断。 – John 2011-04-16 00:29:04