ISO-8859-*
вообще не имеет черты.cp1252
, версия MS, которую часто путают с 8859-1
, делает .
$endash = '–';
var_dump(
bin2hex($endash),
bin2hex(mb_convert_encoding($endash, 'cp1252', 'utf-8'))
);
Вывод:
string(6) "e28093"
string(2) "96"
Где 0x96
- байт cp1252
для дефиса.«Плохое» преобразование, которое вы опубликовали, - это просто 3-байтовая последовательность UTF-8, передаваемая как есть и неправильно отображаемая как 8859-1
или cp1252
.
Однако я настоятельно рекомендую вам просто сделатьупростите свою жизнь и настройте свою цепочку инструментов для правильной работы с UTF-8 вместо этого, поскольку вы не столкнетесь с бесконечными проблемами, пытаясь представить символы из несовместимых однобайтовых кодировок в одном документе.