PHP iconv от utf-8 до windows-1252 без специальных символов - PullRequest
0 голосов
/ 27 сентября 2018

Я пытаюсь закодировать содержимое файла следующим образом:

$f_file = fopen("dreams.txt", "w");  
$string = "Los sueños se cumplen.";    
$string_encoded = iconv( mb_detect_encoding( $string ), 'Windows-1252//TRANSLIT', $string );
fwrite($f_file, $string_encoded);
fclose($f_file);

Если $ string включает специальный символ, такой как «ñ» или «á», файлсохраняется в кодировке Windows-1252, но если $ string не включает их, файл кодируется как UTF-8.Мне нужен файл с кодировкой Windows-1252.

Что я делаю не так?

1 Ответ

0 голосов
/ 27 сентября 2018

Первые 127 символов, используемые в ASCII, ANSI (ISO-8859-1), Windows-1252 и UTF8, одинаковы, поэтому невозможно определить, что такое кодировка "", просто взглянув на документ только сперсонажи из этого набора: все они одинаково применимы.

Современные редакторы увидят это и скажут: «Это 2018 год, поэтому я скажу вам, что это UTF8», и они даже не ошибутся: пока выдобавить эти специальные символы, все эти схемы кодирования являются взаимозаменяемыми.До тех пор, пока вы не введете символы старшего байт-кода, вам нужно будет четко указать, какой должна быть кодировка.

...