Декодировать строку ISO-8859-1 в UTF-8

Есть $string которая содержит внутри:

Âàëåðèé Ìåëàäçå Îêåàí È Òðè Ðåêè (Feat. Âèà Ãðà)

Несмог декодировать её в UTF-8 , чтобы было читабельно.

Нагуглил сайт, онлайн декодер. Он переводит нормально. Получается результат:

Валерий Меладзе Океан И Три Реки (Feat. Виа Гра)

Декодер на сайте также указывает кодировки, которые применялись для выполнения.

ISO-8859-1 => Windows-1251

Пробывал все возможные варианты:

iconv ('ISO-8859-1', 'UTF-8', $string);

iconv ('ISO-8859-1', 'Windows-1251', $string);

iconv ('Windows-1251', 'UTF-8', $string);

также пробывал utf8_encode() функцию.. Безрезультатно. Надеюсь на вашу помощь.


Ответы (1 шт):

Автор решения: Eugene X

Как-бы Iconv и utf8_encode уже морально устарели.

Активный способ использовать mb_convert_encoding : https://www.php.net/manual/ru/function.mb-convert-encoding.php

Вообще очень советую изучить документацию на multybyte strings.

Для правельной конверсии надо пройти : CP1251 -> UTF8

ISO-8859-1 и CP1251 однобайтовые кодировки, изначально читай как CP1251.

→ Ссылка