Преобразование UTF-8 евро чар в другой евро
Так или иначе, в UTF-8 есть два разных символа. Правильное U+20AC и латинское 1 дополнение U+0080.
С помощью bin2hex
Я получил гекс c280
вместо правильного e282ac
, Поскольку первый не отображается правильно, я хотел бы преобразовать его.
Честно говоря, я не могу использовать utf8_decode()
или же utf8_encode()
, Я старался iconv('Windows-1252', 'UTF-8', $x)
но это дает мне "€"
потому что в Windows-1252 € стоит 80
,
Какой правильный конвертер для этого?
1 ответ
Решение
Похоже, это работает, если я конвертирую из utf8_decode обратно в Windows-1252 и снова конвертирую в utf8, используя iconv:
iconv('Windows-1252', 'UTF-8', utf8_decode($x));
Я предполагаю, что строка изначально Windows-1252 и была преобразована в utf8_encode, что не работало для большинства, но не для всех символов.