Supprimer le BOM d'un fichier encodé en UTF-8 sous linux
Supprimer le BOM d'un fichier encodé en UTF-8 sous linux
Parfois sur un head file (pour voir la premier ligne) les caractères  apparaissent. Ca semble correspondre à un encoding UTF-8 avec BOM.
Cela m’est déjà arrivé et mon shebang ne fonctionnait pas (vous savez le fameux #! en début de script pour spécifier le shell dans lequel va s’exécuter les commandes du script)
Autre cas, vous faites un grep censé fonctionner et aucun retour sur votre grep. Pourtant le cat fonctionne. essayez la commande head et vous serez fixé sur les premiers bits, les premiers caracteres devraient être étranges
head -n 1 fichier
Pour le supprimer sous LINUX :
tail --bytes=+4 UTF8WithBom.txt > UTF8WithoutBom.txt
Ca parait tout bête, mais supprimer les premiers caractères semble suffisant.
Pour voir tous les caractères sous LINUX vi :
vi file
:set list
Pour modifier un encoding sous vi :
vi file
:set fileencoding=utf-8
autre methode en ligne de commande (pratique pour scripter)
vim +"set bomb | set fileencoding=utf-8 | wq" fichier
Dans le même ordre d’idée, voici une solution pour convertir un fichier texte DOS en Unix :
:e ++ff=dos
:setlocal ff=unix
source : VI file_format