Задать вопрос
@Letivan

Как сменить кодировку верхнего индекса из UTF-8 в windows-1251 на php?

Добрый день. Прошу помощи у знатоков и гуру в PHP казалось бы банальном вопросе но....
Суть - по api мне прилетает значение в кодировке UTF-8 - мм².
Необходимо сменить кодировку на windows-1251.
Казалось бы нет ничего проще берем iconv и вперед, но нет iconv вообще ничего не возвращает (если ² убрать то норм меняет кодировку), что же мы не сдаемся берем второй метод mb_convert_encoding - в итоге получаем мм?.
Заменой знака вопроса на символ в нужной кодировке проблемы не решить так как там может быть не в квадрате а в кубе или градусы и т.п.
Помогите кто знает.
  • Вопрос задан
  • 186 просмотров
Подписаться 2 Простой 1 комментарий
Решения вопроса 2
FanatPHP
@FanatPHP
Чебуратор тега РНР
Никак.
в кодировке windows-1251 примерно 200 символов
в UTF-8 - миллионы.
Запихнуть миллион символов в 200 физически невозможно.
Поэтому либо перестать использовать у себя пещерную кодировку, либо городить ручную замену для всех неподдерживаемых символов, тупо строковой заменой.
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
В Windows-1251 нет символа "верхний индекс 2". Вот он и заменяется в mb_convert_encoding на знак вопроса, как любой отсутствующий в целевой кодировке символ.
iconv же, начиная с PHP 5.4.0 возвращает в таких случаях FALSE, если не указан признак //IGNORE.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы