Я был сбит с ног после обновления нашего сервера с Debian 4 на 5.
Мы перешли на среду UTF-8, и теперь у нас возникают проблемы с правильным выводом текста в браузер, поскольку все файлы находятся в кодировках не-utf8, таких как iso-8859-1, ascii и т. Д.
Я пробовал много разных скриптов.
Первое, что я попробовал, это "iconv". Этот не работает, он изменяет содержимое, но файлы, которые он содержит, все еще не-utf8.
Та же проблема с enca, encamv, convmv и некоторыми другими инструментами, которые я установил через apt-get.
Затем я нашел код на python, который использует модуль chardet Universal Detector, чтобы обнаружить кодировку файла (который работает нормально), но с помощью класса unicode или класса кодека, чтобы сохранить его, так как utf-8 не работает, без каких-либо ошибки.
Единственный способ найти файл и его содержимое, преобразованный в UTF-8, - это vi.
Вот шаги, которые я делаю для одного файла:
vi filename.php
:set bomb
:set fileencoding=utf-8
:wq
Вот и все. Это работает отлично. Но как запустить это через скрипт?
Я хотел бы написать скрипт (оболочка linux), который пересекает каталог, содержащий все файлы php, а затем конвертирует их с помощью vi с помощью приведенных выше команд.
Поскольку мне нужно запустить приложение vi, я не знаю, как сделать что-то вроде этого:
"vi --run-command=':set bomb, :set fileencoding=utf-8' filename.php"
Надеюсь, кто-нибудь может мне помочь.