Outils pour utilisateurs

Outils du site


sysadmin:linux:encodage-des-caracteres

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
sysadmin:linux:encodage-des-caracteres [2020/06/30 16:30] – créée yoannsysadmin:linux:encodage-des-caracteres [2023/11/29 11:09] (Version actuelle) yoann
Ligne 1: Ligne 1:
-{{tag>sysadmin linux charset}}+{{tag>sysadmin linux charset encodage encoding}}
  
 ====== Encodage des caractères  ====== ====== Encodage des caractères  ======
  
-Un jeu de caractère est une table permettant d'établir un transcodage entre une valeur binaire et un symbole, un caractère. Il existe plusieurs jeux de caractères. Un fichier des caractères.+Par son mode de fonctionnement, un ordinateur ne permet que de stocker des représentations binaires (des nombres en base 2). Il n'y a donc pas de façon "naturelle" de représenter un caractère comme 'A', un guillemet ou un point-virgule, il faut donc **concevoir des abstractions** basées sur ces nombres pour représenter d’autres données. Un **jeu de caractère** est une table permettant d'établir un **transcodage** entre une valeur binaire et un symbole, un caractère. C'est donc un choix, **une convention** et **plusieurs jeux de caractères existent** comme US-ASCII, CP1252, ISO 8859-1 (Latin-1), ISO 8859-15 (Latin-9), UTF-8 etc.
  
-Les éditeurs de textes permettent de définir quel jeu de caractères (charset) doit être utilisé pour l'édition et l'enregistrement d'un fichier.+Pour représenter un caractère à l’écran il faut donc: 
 +  - décoder le flux d'octets pour associer le code binaire à un symbole, c'est le rôle du jeu de caractères. 
 +  - Afficher un symbole, c'est à dire dessiner le glyphe correspondant au symbole c'est le rôle de la police de caractères. 
 + 
 +Les éditeurs de textes permettent de définir quel jeu de caractères (charset) doit être utilisé pour l'édition et l'enregistrement d'un fichier texte.
  
  
 ===== Déterminer le charset d'un fichier ===== ===== Déterminer le charset d'un fichier =====
  
-Plusieurs outils: uchardet, file, enca+Plusieurs outils peuvent être utilisés: uchardet, file, enca 
 + 
 +<code bash> 
 +# Détermine le type mime et l'encodage du fichier smp2.csv 
 +file --mime smp2.csv  
 +smp2.csv: application/csv; charset=us-ascii 
 + 
 +# Pour n'afficher que l'encodage 
 +file --brief --mime-encoding smp2.csv  
 +us-ascii 
 + 
 +# Déterminer l'encodage via chardet 
 +chardet smp2.csv  
 +smp2.csv: ascii with confidence 1.0 
 + 
 +</code>
  
 ===== Conversion ===== ===== Conversion =====
  
-toDo: iconv+Depuis la ligne de commande via **iconv** 
 +<code bash> 
 +# Créer un 
 +iconv --from-code=US-ASCII --to-code=UTF-8 --output=smp3.csv smp2.csv 
 +</code> 
 + 
 +<note> 
 +Certains jeux de caractères sont plus étendus que d'autres. Par exemple UTF-8 contient des caractères qui ne pourront pas être convertis en ASCII. **iconv** génère alors un message d'erreur de la forme ''illegal input sequence at position'' a moins de définir l'option **-c** permettant d'ignorer les caractères non convertibles. 
 +</note> 
 + 
 +Les éditeurs de textes permettent de définir quel encodage utiliser lors de l'enregistrement. Vim par exemple dispose de la variable [[software:applications:vim:trucs-et-astuces#encodage|fileencoding]].
  
 ===== Références ===== ===== Références =====
  
   * https://stackoverflow.com/questions/48729215/how-to-check-character-encoding-of-a-file-in-linux   * https://stackoverflow.com/questions/48729215/how-to-check-character-encoding-of-a-file-in-linux
 +  * https://www.shellhacks.com/linux-check-change-file-encoding/
sysadmin/linux/encodage-des-caracteres.1593534657.txt.gz · Dernière modification : 2021/02/01 21:51 (modification externe)