PHP, как удалить злые символы из строки - PullRequest
0 голосов
/ 10 марта 2012

Я использую * file_get_contents *, чтобы получить удаленный текст, и текст содержит текст в двойных кавычках влево / вправо, например “Green Slime”.

* file_get_contents *, возвращает этот текст как �Green Slime�.

Глядя на удаленный источник, символы “” являются буквальными, а не кодами сущностей.В источнике нет определения набора символов.

Есть ли контекст, который я могу добавить к * file_get_contents *, чтобы исправить это?Если нет, как я могу * str_replace * эти символы?

РЕДАКТИРОВАТЬ: Очевидные решения, такие как htmlentities () и str_replace () не работают.Я также получаю те же символы, которые возвращаются при использовании cURL.

Ответы [ 4 ]

0 голосов
/ 10 марта 2012

Я использовал ord(), чтобы определить, что это символы chr (147) и chr (148), затем использовал str_replace( Chr(147), "&#147", $str ).

Не уверен, почему и file_get_contents, и curl возвращают это содержимое таким образом, чтобыневозможно отобразить в браузере.

0 голосов
/ 10 марта 2012

Посмотрите на utf8_decode / закодируйте функции

0 голосов
/ 10 марта 2012

HTML-сущностей.

http://php.net/manual/en/function.htmlentities.php

Это решит вашу проблему и исправит вывод.

0 голосов
/ 10 марта 2012

Поставьте это сразу под тегом head:

<meta charset="utf-8">
...