php iconv от utf-8 до windows-1252 не работает, если строка содержит - - PullRequest
0 голосов
/ 28 августа 2018

Если у меня есть строка с кодировкой utf-8, которая содержит символ -:

$str = "A Coruña";

a mb_detect_encoding($str) показывает, что оно закодировано в UTF-8.

и я использую следующий код:

$recoded = iconv("UTF-8", "WINDOWS-1252", $str);

Я получаю пустую строку в $recoded, и mb_detect_encoding($recoded) показывает, что кодируется ASCII

iconv("UTF-8", "WINDOWS-1252//TRANSLIT", $str) также возвращает пустую строку.

iconv("UTF-8", "WINDOWS-1252//IGNORE", $str) возвращает строку с 'A Coru a', а mb_detect_encoding($recoded) показывает, что она закодирована с UTF-8

Я не могу найти способ кодировать $ str с помощью windows-1252 и выдавать оригинальный текст, даже если он содержит символ - (и некоторые другие символы, такие как гласные с ´).

Есть ли другой способ правильно выполнить преобразование формата в PHP 5.6?

Я использую PHP версии 5.6.33

...