@sidorchik

Как преобразовать текст из кодировки Windows-1252 в UTF-8?

Не работает:
$metro = 'Ìåòðî Ïëàíåðíàÿ 474 ì';
$metro = iconv('CP1252', 'UTF-8', $metro);

Так тоже:
$metro = 'Ìåòðî Ïëàíåðíàÿ 474 ì';
$metro = iconv('CP1252', 'CP1251', $metro);
$metro = iconv('CP1251', 'UTF-8', $metro);
  • Вопрос задан
  • 2382 просмотра
Решения вопроса 2
DevMan
@DevMan
вы делаете ту же ошибку, что и в предыдущих вопросах по парсингу: работаете с уже интерпретированными данными вместо сырых.
когда вы в файле пишите $metro = 'Ìåòðî Ïëàíåðíàÿ 474 ì'; строка приобретает кодировку этого файла, а не исходную, соответственно, любые камлания по конвертации лишены всякого смысла.
Ответ написан
Комментировать
@krypt3r
Для быстрого фикса
$metro = 'Ìåòðî Ïëàíåðíàÿ 474 ì';
$metro = iconv('UTF-8', 'CP1252', $metro);
$metro = iconv('CP1251', 'UTF-8', $metro);
var_dump($metro);

string(36) "Метро Планерная 474 м"
Однако вам нужно искать проблему, а не рисовать костыли.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
profesor08
@profesor08 Куратор тега PHP
Пересохрани все свои файлы в кодировку UTF-8. Документу укажи кодировку UTF-8. Вот после этих действий, ты можешь начинать играться с конвертацией кодировок. mb_detect_encoding поможет узнать в какой кодировке получившийся текст, если вдруг что-то пошло не так.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы