Ceci est une ancienne révision du document !
Si vous avez décidé de passer votre serveur en UTF8, la plupart des fichiers textes/html etc.. contenant des accents deviendront difficilement lisible.
Dans mon cas d’un serveur web, je devais réencoder tous les fichiers du site.
Pour cette manip, mon choix s’est tourné sur la commande recode mais étant données que j’avais déjà commencer à réencoder certain fichier, je devais faire attention à ne pas réencoder un fichier déjà réencodé..
J’avais donc créé un petit script (dispo au dernier chapitre de cette page) permettant de tester le format du fichier puis de l’encoder si nécessaire.
aptitude install locales dpkg-reconfigure locales
Choisissez alors fr_FR.UTF8
Avec la commande file qui permet de connaitre le type d’un fichier et en rajoutant l’option -i
# file plan.php plan.php: HTML document text # file -i plan.php plan.php: text/html; charset=iso-8859-1 # file -i index.php index.php: text/x-php; charset=utf-8
iconv permet de convertir un fichier et renvoie le résultat sur la sortie standard ce qui n’est pas forcément pratique pour réencoder plusieurs fichiers d’un site web par exemple.
iconv -f iso-8859-1 -t utf-8 ancienFichier > nouveauFichier # vers UTF-8 iconv -f utf-8 -t iso-8859-1 ancienFichier > nouveauFichier # vers latin-1
recode réencode le fichier qu’on lui soumet.
# file -i plan.php plan.php: text/html; charset=iso-8859-1 # recode iso-8859-1..utf-8 plan.php # file -i plan.php plan.php: text/html; charset=utf-8
On peut réencoder plusieurs fichiers d’un coup.
# recode iso-8859-1..utf-8 *
Quand vous ouvrez un fichier non utf8 avec vim, la mention [converti] apparait en bas.
Pour convertir ce fichier en utf8, tapez la commande suivante dans vim
:set fileencoding=utf-8
ou
:set fenc=utf8
Convertir pendant l’ouverture du fichier
:edit ++enc=koi8-r russe.txt
Convertir lors de l’écriture du fichier
:write ++enc=utf-8 russe.txt
latin1 | caractères 8-bits (ISO-8859-1) |
iso-8859-N | variante ISO-8859 (N = 2 à 15) |
koi8-r | russe |
koi8-u | ukrainien |
8bit-{nom} | n’importe quel encodage 8-bits (nom spécifique de Vim) |
cp{nombre} | MS-Windows : n’importe quelle page de codes mono-octet installée |
cp932 | japonais (Windows uniquement) |
euc-jp | japonais (Unix uniquement) |
sjis | japonais (Unix uniquement) |
cp949 | coréen (Unix et Windows) |
euc-kr | coréen (Unix uniquement) |
cp936 | chinois simplifié (Windows uniquement) |
euc-cn | chinois simplifié (Unix uniquement) |
cp950 | chinois classique (sur Unix, alias pour big5) |
big5 | chinois classique (sur Windows, alias pour cp950) |
euc-tw | chinois classique (Unix uniquement) |
2byte-{nom} | Unix : n’importe quel encodage sur deux octets (nom spécifique de Vim) |
cp{nombre} | MS-Windows : n’importe quelle page de codes sur deux octets installée |
utf-8 | Unicode UTF-8 encodé sur 32 bits (ISO/IEC 10646-1) |
ucs-2 | Unicode UCS-2 encodé sur 16 bits (ISO/IEC 10646-1) |
ucs-2le | comme ucs-2, en petit boutiste |
utf-16 | ucs-2 étendu avec des mots doubles pour plus de caractères |
utf-16le | comme utf-16, en petit boutiste |
ucs-4 | Unicode UCS-4 encodé sur 32 bits (ISO/IEC 10646-1) |
ucs-4le | comme ucs-4, en petit boutiste |