@Soft_touch_plastic

Как в php определить кодировку строки?

Здравствуйте, занимаюсь массовым парсингом с помощью curl, проблема в том что каждое необходимое мне слово (из title, h1 и description) я прогоняю через функцию нормализации кодировки. Проблема в том, что строки вида ����� без каких-либо изменений определяются как utf-8 (mb_detect_encoding), если прогонять все слова через декодировку с windows-1251 на utf-8, то эти знаки вопроса становятся нормальным текстом, но бывшие нормальные слова превращаются в кашу. Ломаю голову как определить наличие заменяющего символа � в строке, stripos($str, '�') === false возвращает true, php их в строке не видит.
  • Вопрос задан
  • 126 просмотров
Решения вопроса 1
@rPman
Кодировку не нужно угадывать
Ее нужно брать из заголовков (добавь к curl опцию -D имя_файла, куда будут помещены все заголовки запроса)
Content-Type: text/html; charset=UTF-8

и что лучше, из тега
<meta charset="utf-8">

p.s. чтобы угадать кодировку, пользуйся консольной утилитой enca, очень мощная вещь, угадывает множественные перекодирования, когда создатель накосячил (например открыть cp1251 в far в koi8 кодировке и скопировать через содержимое экрана)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
25 апр. 2024, в 12:03
75000 руб./за проект
25 апр. 2024, в 11:49
25000 руб./за проект
25 апр. 2024, в 11:37
40000 руб./за проект