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.
Pour représenter un caractère à l’écran il faut donc:
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.
Plusieurs outils peuvent être utilisés: uchardet, file, enca
# 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
Depuis la ligne de commande via iconv:
# Créer un iconv --from-code=US-ASCII --to-code=UTF-8 --output=smp3.csv smp2.csv
illegal input sequence at position
a moins de définir l'option -c permettant d'ignorer les caractères non convertibles.
Les éditeurs de textes permettent de définir quel encodage utiliser lors de l'enregistrement. Vim par exemple dispose de la variable fileencoding.