@Letivan

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

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

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

Войти через центр авторизации
Похожие вопросы
Spice IT Recruitment Москва
До 230 000 ₽
ImageSpark Санкт-Петербург
от 60 000 ₽
FrozenEon Киев
от 1 500 до 3 000 $