Меня просто сбили после того, как наш сервер был обновлен с Debian 4 до 5. Мы перешли на среду UTF-8, и теперь у нас проблемы с правильной печатью текста в браузере, потому что все файлы находятся в кодировках не-utf8, таких как iso-8859-1, ascii и т. д.Изменить кодировку файла на utf-8 через vim в скрипте
Я пробовал много разных сценариев.
Первый, который я попробовал, - «iconv». Этот файл не работает, он изменяет содержимое, но файлы, находящиеся в нем, по-прежнему не являются utf8.
Такая же проблема с enca, encamv, convmv и некоторыми другими инструментами, которые я установил через apt-get.
Затем я нашел код python, который использует модуль универсального детектора Chardet для обнаружения кодировки файла (который отлично работает), но с использованием класса 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"
Надежда кто-то может мне помочь.
я не знаю, что означает, что argdo, но я попробовал это, и она работает: 'ВИМ + "набор бомбы | набор fileencoding = UTF-8 | WQ" $ (найти -типа е -name * .php.) ' – NovumCoder
Хорошо. argdo просто повторяет команду для каждого файла в списке аргументов. –