PHP Ansi в UTF-8

Я пытаюсь создать скрипт на PHP для преобразования некоторых файлов в UTF-8. У меня есть файл на греческом языке, где Notepad++ указывает, что это кодировка "ANSI". Когда я загружаю его на сервер, он определяет его кодировку как UTF-8 (я думаю, что-то не так). Затем, когда я конвертирую его содержимое в UTF-8 с помощью utf8_encode() и загружаю новый файл, символы перепутались. Я попытался удалить спецификацию с помощью PHP, и результат был таким же. Я попытался удалить спецификацию с помощью PHP без преобразования файла в UTF-8, но файл остался в кодировке ANSI без перепутанных символов. Как я могу это исправить?


person Paris    schedule 25.06.2011    source источник


Ответы (1)


Удалите спецификацию, затем выполните:

$file = file_get_contents('file.php');
$file = iconv('greek-charset','UTF-8', $file);
file_put_contents('file.php', $file);
//ta-da!

Измените greek-charset на правильное имя набора символов (возможно, Windows-1253).

person OZ_    schedule 25.06.2011
comment
где найти кодировку? - person Paris; 26.06.2011
comment
@Paris: Вы можете найти расширенный список доступных кодировок здесь: gnu.org/software/libiconv - конкретная установка может отличаться, однако этот список является хорошей ориентацией. - person hakre; 29.01.2013
comment
используйте CP1251 из 'greek-charset' - person Mcile; 10.04.2017