Ho appena finito il servizio dopo che il nostro server è stato aggiornato da Debian 4 a 5. Siamo passati all'ambiente UTF-8 e ora abbiamo problemi a ottenere il testo stampato correttamente sul browser, perché tutti i file sono in codifiche non utf8 come iso-8859-1, ascii, ecc.Modifica codifica file in utf-8 tramite vim in uno script
Ho provato molti script diversi.
Il primo che ho provato è "iconv". Quello non funziona, cambia il contenuto, ma i file che codificano sono ancora non ut-8.
Stesso problema con enca, encamv, convmv e alcuni altri strumenti che ho installato tramite apt-get.
Quindi ho trovato un codice python, che utilizza il modulo Universal Detector di chardet, per rilevare la codifica di un file (che funziona bene), ma usando la classe unicode o la classe codec per salvarlo come utf-8 non funziona, senza eventuali errori.
L'unico modo in cui ho trovato il file e il suo contenuto convertito in UTF-8, è vi.
Questi sono i passi che faccio per un unico file:
vi filename.php
:set bomb
:set fileencoding=utf-8
:wq
questo è tutto. Quello funziona perfettamente. Ma come farlo funzionare tramite una sceneggiatura. Mi piacerebbe scrivere uno script (linux shell) che attraversi una directory prendendo tutti i file php, quindi li converta usando vi con i comandi sopra. come ho bisogno di avviare l'applicazione vi, non so come fare qualcosa di simile:
"vi --run-command=':set bomb, :set fileencoding=utf-8' filename.php"
La speranza che qualcuno mi può aiutare.
Non so che cosa significa che argdo, ma ho provato questo e funziona: 'vim + "impostare bomba | set fileencoding = utf-8 | WQ" $ (find -type f -name * .php.) ' – NovumCoder
Buono. argdo ripete semplicemente il comando per ogni file nella lista degli argomenti. –