Строка с символом £ возвращает вопрос черный бриллиант марки PHP - PullRequest
0 голосов
/ 16 апреля 2011

Я собираю мета-описания с удаленных URL-адресов, и когда URL-адрес содержит «£», он возвращается в виде черного алмаза с вопросительным знаком в Firefox.Когда я применяю utf8_encode к строке, он возвращает «£», как и должно, однако тогда другие символы UTF не будут отображаться правильно.Что я могу сделать?

1 Ответ

0 голосов
/ 16 апреля 2011

Вы установили метатег типа контента на странице?

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]);

?>

Сказав это, правильный способ сделать это будет проанализировать HTML, возвращенныйcurl_exec, найдите соответствующий узел (с name="description") и верните значение urlencode d атрибута content

...