0
我从远程URL获取元描述,当URL包含“英镑”时,它返回为带有问号的黑色菱形。当我在字符串上应用utf8_encode时,它应该返回“£”,但是其他UTF字符将无法正确显示。我能做什么?带英镑符号的字符串返回问题黑色菱形标记PHP
我从远程URL获取元描述,当URL包含“英镑”时,它返回为带有问号的黑色菱形。当我在字符串上应用utf8_encode时,它应该返回“£”,但是其他UTF字符将无法正确显示。我能做什么?带英镑符号的字符串返回问题黑色菱形标记PHP
您是否在页面上设置了内容类型元标记?
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值
是的,它被设置为UTF-8。当我不应用任何东西时,字符串会正确返回编码UTF-8字符,除了英镑符号 – John 2011-04-15 23:58:49
您是否尝试过HTML编码?该字符的代码是£ – 2011-04-16 00:05:50
我已经尝试过,但然后字符串切断。 – John 2011-04-16 00:29:04