метаданные не декодируют PHP - PullRequest
0 голосов
/ 11 апреля 2011

Мета-описание для этой ссылки: http://www.mercurynews.com/samesexmarriage/ci_17794445?source=most_viewed&nclick_check=1

Возвращает странный символ вместо кавычки.

The federal judge who struck down Californias gay marriage ban has confirmed that hes gay. Chief U.

Я использую strip_tags(html_entity_decode(htmlspecialchars_decode($description, ENT_NOQUOTES), ENT_NOQUOTES, "UTF-8"));

Что делать? Странный символ появляется вместо цитаты в словах "Калифорния" и "Он"

1 Ответ

1 голос
/ 11 апреля 2011

Сайт неправильно кодирует объекты HTML. Эти апострофы в источнике должны быть закодированы как ' - шестнадцатеричное число для апострофа (десятичное число 39). Они используют , который является десятичной цифрой для символа ASCII "Escape".

Вы можете легко скрыть их ошибку, добавив str_replace вызов:

$description = str_replace('', "'", $description);
$description = strip_tags(html_entity_decode(htmlspecialchars_decode($description, ENT_NOQUOTES), ENT_NOQUOTES, "UTF-8"));

Справочник по кодам ASCII

...