107.3 Leçon 1
Certification : |
LPIC-1 |
---|---|
Version : |
5.0 |
Thème : |
107 Tâches administratives |
Objectif : |
107.3 Paramètres régionaux et langues |
Leçon : |
1 sur 1 |
Introduction
Toutes les distributions Linux majeures peuvent être configurées pour utiliser des paramètres régionaux personnalisés. Ces paramètres comprennent des définitions liées à la région et à la langue, notamment le fuseau horaire, la langue de l’interface et l’encodage des caractères. Ils peuvent être modifiés lors de l’installation du système d’exploitation ou à tout moment par la suite.
Les applications s’appuient sur des variables d’environnement, des fichiers de configuration du système et des commandes pour décider de l’heure et de la langue à utiliser ; c’est pourquoi la plupart des distributions Linux ont en commun une méthode standardisée pour ajuster les paramètres relatifs à l’heure et à la localisation. Ces ajustements sont importants non seulement pour améliorer l’expérience de l’utilisateur, mais également pour s’assurer que la chronologie des événements du système — importante, par exemple, pour signaler des problèmes de sécurité — est correctement déterminée.
La représentation d’un texte écrit, quelle que soit la langue parlée, nécessite pour les systèmes d’exploitation modernes une norme de référence pour l’encodage des caractères, et les systèmes Linux ne dérogent pas à cette règle. Les ordinateurs ne peuvent traiter que des nombres, et un caractère de texte n’est rien d’autre qu’un nombre associé à un symbole graphique. Différentes plateformes informatiques peuvent associer des valeurs numériques distinctes à un même caractère, si bien qu’une norme commune d’encodage des caractères est indispensable pour les rendre compatibles. Un document texte créé sur tel système ne sera lisible sur tel autre système que si tous deux s’accordent sur le format d’encodage et sur le nombre associé à tel ou tel caractère, ou du moins s’ils savent effectuer la conversion entre les deux normes.
La nature hétérogène des paramètres régionaux dans les systèmes Linux entraîne des différences subtiles entre les distributions. En dépit de ces différences, toutes les distributions partagent les mêmes outils et les mêmes concepts de base pour internationaliser un système.
Les fuseaux horaires
Les fuseaux horaires correspondent à des zones distinctes de la surface de la Terre, à peu près proportionnelles, et qui s’étendent sur l’équivalent d’une heure, c’est-à-dire des régions du monde qui connaissent la même heure de la journée à un moment donné. Comme il n’existe pas de longitude unique qui puisse être considérée comme le début de la journée pour le monde entier, les fuseaux horaires sont relatifs au méridien d’origine, où l’angle longitudinal de la Terre est défini comme étant égal à 0. L’heure au méridien d’origine est appelée Temps universel coordonné, abrégé en UTC par convention. Pour des raisons pratiques, les fuseaux horaires ne suivent pas la distance longitudinale exacte du point de référence (le méridien d’origine). Au lieu de cela, les fuseaux horaires s’adaptent artificiellement pour suivre les frontières des pays ou d’autres subdivisions importantes.
Les subdivisions politiques sont si importantes que les fuseaux horaires sont nommés d’après un élément géographique majeur de la région concernée, généralement le nom d’un grand pays ou d’une grande ville à l’intérieur du fuseau. Cependant, les fuseaux horaires sont subdivisés en fonction de leur décalage horaire par rapport à l’UTC et ce décalage peut également être utilisé pour identifier le fuseau en question. Le fuseau horaire GMT-5, par exemple, indique une région pour laquelle l’heure UTC est en avance de cinq heures, c’est-à-dire que cette région est en retard de cinq heures par rapport à l’heure UTC. De même, le fuseau horaire GMT+3 indique une région pour laquelle l’heure UTC est en retard de trois heures. Le terme GMT — de Greenwich Mean Time — est utilisé comme synonyme d’UTC dans les noms de fuseaux horaires basés sur le décalage.
Une machine connectée peut être accessible depuis différentes régions du monde, c’est pourquoi il est bon de régler l’horloge interne sur UTC (le fuseau horaire GMT+0) et de laisser le choix du fuseau horaire à chaque cas particulier. Les services cloud, par exemple, sont généralement configurés pour utiliser l’UTC, étant donné que cela permet de pallier les incohérences occasionnelles entre l’heure locale et l’heure des clients ou d’autres serveurs. En contrepartie, les utilisateurs qui démarrent une session à distance sur le serveur peuvent vouloir utiliser leur fuseau horaire local. C’est donc au système d’exploitation que revient la tâche de configurer le fuseau horaire correct en fonction de chaque cas.
En dehors de la date et de l’heure en cours, la commande date
indique également le fuseau horaire en vigueur :
$ date Mon Oct 21 10:45:21 -03 2019
Le décalage par rapport à l’UTC est fourni par la valeur -03
, ce qui signifie que l’heure affichée est inférieure de trois heures à l’UTC. Par conséquent, l’heure UTC est en avance de trois heures, ce qui fait de GMT-3 le fuseau horaire correspondant à l’heure donnée. La commande timedatectl
, disponible dans les distributions utilisant systemd, affiche davantage de détails sur l’heure et la date du système :
$ timedatectl Local time: Sat 2019-10-19 17:53:18 -03 Universal time: Sat 2019-10-19 20:53:18 UTC RTC time: Sat 2019-10-19 20:53:18 Time zone: America/Sao_Paulo (-03, -0300) System clock synchronized: yes systemd-timesyncd.service active: yes RTC in local TZ: no
Comme on peut le voir dans l’entrée Time zone
, les noms de fuseaux horaires basés sur des localités — comme America/Sao_Paulo
— sont également acceptés. Le fuseau horaire par défaut du système est enregistré dans le fichier /etc/timezone
, soit par le nom descriptif complet du fuseau, soit par son décalage. Les noms génériques de fuseaux horaires définis en fonction du décalage UTC doivent inclure Etc
dans la première partie du nom. Par exemple, pour définir le fuseau horaire par défaut à GMT+3, le nom du fuseau horaire doit être Etc/GMT+3
:
$ cat /etc/timezone Etc/GMT+3
Même si les noms de fuseaux horaires basés sur les localités ne nécessitent pas de décalage horaire pour fonctionner, le choix n’est pas si simple. Une même zone peut avoir plus d’un nom, ce qui peut la rendre difficile à mémoriser. Pour résoudre ce problème, la commande tzselect
offre une méthode interactive qui guide l’utilisateur vers la bonne définition du fuseau horaire. La commande tzselect
est disponible par défaut dans toutes les distributions Linux, dans la mesure où elle est fournie par le paquet qui contient une série d’outils liés à la bibliothèque C de GNU.
La commande tzselect
pourra être utile, par exemple, à un utilisateur qui souhaite déterminer le fuseau horaire de “São Paulo City” à “Brazil”. tzselect
commence par demander la macro-région de l’endroit choisi :
$ tzselect Please identify a location so that time zone rules can be set correctly. Please select a continent, ocean, "coord", or "TZ". 1) Africa 2) Americas 3) Antarctica 4) Asia 5) Atlantic Ocean 6) Australia 7) Europe 8) Indian Ocean 9) Pacific Ocean 10) coord - I want to use geographical coordinates. 11) TZ - I want to specify the time zone using the Posix TZ format. #? 2
L’option 2
est destinée aux pays d’Amérique du Nord et du Sud, pas forcément dans le même fuseau horaire. Vous pouvez également spécifier le fuseau horaire à l’aide de coordonnées géographiques ou de la notation décalée, également connue sous le nom de Posix TZ format. L’étape suivante consiste à choisir le pays :
Please select a country whose clocks agree with yours. 1) Anguilla 19) Dominican Republic 37) Peru 2) Antigua & Barbuda 20) Ecuador 38) Puerto Rico 3) Argentina 21) El Salvador 39) St Barthelemy 4) Aruba 22) French Guiana 40) St Kitts & Nevis 5) Bahamas 23) Greenland 41) St Lucia 6) Barbados 24) Grenada 42) St Maarten (Dutch) 7) Belize 25) Guadeloupe 43) St Martin (French) 8) Bolivia 26) Guatemala 44) St Pierre & Miquelon 9) Brazil 27) Guyana 45) St Vincent 10) Canada 28) Haiti 46) Suriname 11) Caribbean NL 29) Honduras 47) Trinidad & Tobago 12) Cayman Islands 30) Jamaica 48) Turks & Caicos Is 13) Chile 31) Martinique 49) United States 14) Colombia 32) Mexico 50) Uruguay 15) Costa Rica 33) Montserrat 51) Venezuela 16) Cuba 34) Nicaragua 52) Virgin Islands (UK) 17) Curaçao 35) Panama 53) Virgin Islands (US) 18) Dominica 36) Paraguay #? 9
Le territoire brésilien s’étend sur quatre fuseaux horaires, de sorte que les informations sur le pays ne suffisent pas pour définir le fuseau horaire. Dans l’étape suivante, tzselect
demandera à l’utilisateur de spécifier la province :
Please select one of the following time zone regions. 1) Atlantic islands 2) Pará (east); Amapá 3) Brazil (northeast: MA, PI, CE, RN, PB) 4) Pernambuco 5) Tocantins 6) Alagoas, Sergipe 7) Bahia 8) Brazil (southeast: GO, DF, MG, ES, RJ, SP, PR, SC, RS) 9) Mato Grosso do Sul 10) Mato Grosso 11) Pará (west) 12) Rondônia 13) Roraima 14) Amazonas (east) 15) Amazonas (west) 16) Acre #? 8
Tous les noms de villes ne sont pas disponibles, mais le choix de la région la plus proche est suffisant. L’information recueillie sera ensuite utilisée par tzselect
pour afficher le fuseau horaire correspondant :
The following information has been given: Brazil Brazil (southeast: GO, DF, MG, ES, RJ, SP, PR, SC, RS) Therefore TZ='America/Sao_Paulo' will be used. Selected time is now: sex out 18 18:47:07 -03 2019. Universal Time is now: sex out 18 21:47:07 UTC 2019. Is the above information OK? 1) Yes 2) No #? 1 You can make this change permanent for yourself by appending the line TZ='America/Sao_Paulo'; export TZ to the file '.profile' in your home directory; then log out and log in again. Here is that TZ value again, this time on standard output so that you can use the /usr/bin/tzselect command in shell scripts: America/Sao_Paulo
Le nom du fuseau horaire résultant, America/Sao_Paulo
, pourra également être utilisé comme contenu du fichier /etc/timezone
pour renseigner le fuseau horaire par défaut du système :
$ cat /etc/timezone America/Sao_Paulo
Comme l’indique le résultat de tzselect
, la variable d’environnement TZ
définit le fuseau horaire de la session shell, indépendamment du fuseau horaire par défaut du système. Si vous ajoutez la ligne TZ='America/Sao_Paulo'; export TZ
au fichier ~/.profile
, America/Sao_Paulo
deviendra le fuseau horaire pour les futures sessions de l’utilisateur. La variable TZ
peut également être modifiée temporairement pendant la session en cours, en vue d’afficher l’heure dans un fuseau horaire différent :
$ env TZ='Africa/Cairo' date Mon Oct 21 15:45:21 EET 2019
Dans l’exemple, la commande env
lancera la commande donnée dans un nouveau shell avec les mêmes variables d’environnement que la session actuelle à l’exception de la variable TZ
, modifiée par l’argument TZ='Africa/Cairo'
.
L’heure d’été
Beaucoup de pays adoptent l’heure d’été pendant une partie de l’année — lorsque les horloges sont ajustées d’une heure — ce qui peut amener un système mal configuré à indiquer une heure erronée pendant cette période de l’année.
Le fichier /etc/localtime
contient les données utilisées par le système d’exploitation pour ajuster l’horloge en conséquence. Les systèmes Linux standard disposent des fichiers pour tous les fuseaux horaires dans le répertoire /usr/share/zoneinfo/
, et /etc/localtime
n’est qu’un lien symbolique vers les données de ce répertoire. Les fichiers dans /usr/share/zoneinfo/
sont organisés en fonction du nom du fuseau horaire correspondant, de sorte que le fichier de données pour le fuseau horaire America/Sao_Paulo
sera /usr/share/zoneinfo/America/Sao_Paulo
.
Comme les définitions de l’heure d’été peuvent changer, il est important de garder les fichiers dans /usr/share/zoneinfo/
à jour. La commande de mise à jour du gestionnaire de paquets fourni par la distribution devrait les mettre à jour chaque fois qu’une nouvelle version est disponible.
Langue et encodage des caractères
Les systèmes Linux peuvent être utilisés avec une grande variété de langues et d’encodages de caractères non occidentaux, dont les définitions sont connues sous le nom de locales. La configuration locale la plus élémentaire concerne la définition de la variable d’environnement LANG
, à partir de laquelle la plupart des programmes du shell identifient la langue à utiliser.
Le contenu de la variable LANG
suit le format ab_CD
, où ab
représente le code de la langue et CD
le code de la région. Le code de la langue suit la norme ISO-639 et le code de la région la norme ISO-3166. Un système configuré pour utiliser le portugais brésilien, par exemple, doit définir la variable LANG
à pt_BR.UTF-8
:
$ echo $LANG pt_BR.UTF-8
Comme on peut le voir dans le résultat de l’exemple, la variable LANG
contient également l’encodage de caractères prévu pour le système. ASCII, l’abréviation de American Standard Code for Information Interchange, a été la première norme d’encodage de caractères largement utilisée pour la communication électronique. En revanche, comme l’ASCII dispose d’une plage très limitée de valeurs numériques disponibles et qu’il est basé sur l’alphabet anglais, il ne contient ni les caractères utilisés par d’autres langues, ni un ensemble étendu de symboles non alphabétiques. L’encodage UTF-8 est un Unicode Standard pour les caractères occidentaux ordinaires, ainsi que pour de nombreux autres symboles moins courants. Comme l’indique le Unicode Consortium qui assure la maintenance du Unicode Standard, il devrait être adopté par défaut pour garantir la compatibilité entre les plateformes numériques :
La norme Unicode fournit un code unique pour chaque caractère, indépendamment de la plateforme, de l’appareil, de l’application ou de la langue. Elle a été adoptée par tous les fournisseurs de logiciels modernes et permet désormais aux données d’être transportées à travers de nombreuses plateformes, appareils et applications différents sans être altérées. La prise en charge d’Unicode constitue la base de la représentation des langues et des symboles dans tous les principaux systèmes d’exploitation, moteurs de recherche, navigateurs, ordinateurs portables et smartphones, ainsi que sur l’internet et le World Wide Web (URL, HTML, XML, CSS, JSON, etc.). (…) la norme Unicode et la disponibilité des outils qui la prennent en charge font partie des tendances mondiales les plus significatives en matière de technologie logicielle.
Qu'est-ce que l'Unicode ?
Certains systèmes peuvent encore utiliser des normes ISO — comme le standard ISO-8859-1 — pour l’encodage des caractères non-ASCII. Or, ces normes d’encodage de caractères devraient être abandonnées au profit des normes d’encodage Unicode. Cela dit, tous les systèmes d’exploitation majeurs tendent à adopter la norme Unicode par défaut.
Les paramètres régionaux du système sont définis dans le fichier /etc/locale.conf
. La variable LANG
et les autres variables liées à la localisation y sont assignées comme de simples variables shell, par exemple :
$ cat /etc/locale.conf LANG=pt_BR.UTF-8
Les utilisateurs peuvent très bien configurer une localisation personnalisée en modifiant la variable d’environnement LANG
. Ils peuvent le faire pour la session en cours ou pour les sessions à venir, en ajoutant la nouvelle définition à leur profil Bash dans ~/.bash_profile
ou ~/.profile
. En revanche, en attendant que l’utilisateur se connecte, les paramètres régionaux par défaut du système seront toujours appliqués par les programmes indépendants de l’utilisateur, comme l’écran de connexion du gestionnaire d’affichage.
Tip
|
La commande |
En dehors de la variable LANG
, d’autres variables d’environnement ont un effet sur des aspects spécifiques des paramètres régionaux, comme le symbole de la devise à utiliser ou le séparateur de milliers correct pour les nombres :
LC_COLLATE
-
Définit l’ordre alphabétique. L’un de ses usages consiste à définir l’ordre dans lequel les fichiers et les répertoires sont affichés.
LC_CTYPE
-
Définit la manière dont le système traitera certains jeux de caractères. Par exemple, quels caractères doivent être considérés comme des majuscules ou des minuscules.
LC_MESSAGES
-
Définit la langue d’affichage des messages des programmes (surtout les programmes GNU).
LC_MONETARY
-
Définit l’unité monétaire et le format de la devise.
LC_NUMERIC
-
Définit le format numérique pour les valeurs non monétaires. Son rôle principal consiste à définir les séparateurs de milliers et de décimales.
LC_TIME
-
Définit le format de l’heure et de la date.
LC_PAPER
-
Définit le format de papier standard.
LC_ALL
-
Remplace toutes les autres variables, y compris
LANG
.
La commande locale
va afficher toutes les variables définies dans la configuration linguistique en vigueur :
$ locale LANG=pt_BR.UTF-8 LC_CTYPE="pt_BR.UTF-8" LC_NUMERIC=pt_BR.UTF-8 LC_TIME=pt_BR.UTF-8 LC_COLLATE="pt_BR.UTF-8" LC_MONETARY=pt_BR.UTF-8 LC_MESSAGES="pt_BR.UTF-8" LC_PAPER=pt_BR.UTF-8 LC_NAME=pt_BR.UTF-8 LC_ADDRESS=pt_BR.UTF-8 LC_TELEPHONE=pt_BR.UTF-8 LC_MEASUREMENT=pt_BR.UTF-8 LC_IDENTIFICATION=pt_BR.UTF-8 LC_ALL=
La seule variable non définie est LC_ALL
, qui peut être utilisée pour remplacer temporairement tous les autres paramètres linguistiques. L’exemple ci-dessous montre comment la commande date
— exécutée dans un système configuré avec la locale pt_BR.UTF-8
— va modifier son résultat pour se conformer à la nouvelle variable LC_ALL
:
$ date seg out 21 10:45:21 -03 2019 $ env LC_ALL=en_US.UTF-8 date Mon Oct 21 10:45:21 -03 2019
La modification de la variable LC_ALL
a permis d’afficher les abréviations du jour de la semaine et du mois en anglais américain (en_US
). En revanche, il n’est pas forcément nécessaire de définir les mêmes paramètres linguistiques pour toutes les variables. On peut très bien, par exemple, choisir la langue pt_BR
et le format numérique (LC_NUMERIC
) au standard américain.
Certains paramètres régionaux modifient la façon dont les programmes gèrent l’ordre alphabétique et le format des nombres. Alors que les programmes conventionnels sont généralement prêts à choisir correctement une locale commune pour de telles situations, les scripts peuvent se comporter de manière inattendue lorsqu’ils tentent de classer correctement une liste d’éléments par ordre alphabétique, par exemple. Pour cette raison, il est recommandé d’attribuer à la variable d’environnement LANG la valeur de la locale courante C, comme dans LANG=C, de façon à ce que le script produise des résultats non ambigus, quelles que soient les définitions de localisation utilisées dans le système où il est exécuté. Le paramètre local C n’effectue qu’une simple comparaison par ordre alphabétique, de sorte que ses résultats seront également plus probants que ceux des autres paramètres.
Conversion de l’encodage
Un texte peut s’afficher avec des caractères illisibles lorsqu’il est affiché sur un système avec une configuration d’encodage de caractères différente de celle du système sur lequel le texte a été créé. On peut alors utiliser la commande iconv
pour résoudre ce problème, en convertissant le fichier depuis son encodage d’origine vers l’encodage souhaité. Par exemple, pour convertir un fichier nommé original.txt
depuis l’encodage ISO-8859-1 vers le fichier nommé converted.txt
avec l’encodage UTF-8, on peut utiliser la commande suivante :
$ iconv -f ISO-8859-1 -t UTF-8 original.txt > converted.txt
L’option -f ISO-8859-1
(ou --from-code=ISO-8859-1
) définit l’encodage du fichier d’origine et l’option -t UTF-8
(ou --to-code=UTF-8
) définit l’encodage du fichier transformé. Tous les encodages supportés par la commande iconv
sont affichés avec la commande iconv -l
ou iconv --list
. Au lieu d’utiliser la redirection de sortie, comme dans l’exemple, l’option -o converti.txt
ou --output converti.txt
peut aussi être appliquée.
Exercices guidés
-
D’après le résultat suivant de la commande
date
, quel est le fuseau horaire du système en notation GMT ?$ date Mon Oct 21 18:45:21 +05 2019
-
Vers quel fichier doit pointer le lien symbolique
/etc/localtime
pour queEurope/Brussels
soit l’heure locale par défaut du système ? -
Les caractères des fichiers texte peuvent ne pas être rendus correctement dans un système dont l’encodage de caractères est différent de celui utilisé dans le document texte. Comment utiliser
iconv
pour convertir le fichierold.txt
encodé en WINDOWS-1252 vers le fichiernew.txt
en encodage UTF-8 ?
Exercices d’approfondissement
-
Quelle commande fera de
Pacific/Auckland
le fuseau horaire par défaut pour la session shell en cours ? -
La commande
uptime
affiche, entre autres, la charge moyenne du système avec des décimales. Elle utilise les paramètres régionaux en cours pour décider si le séparateur de décimales doit être un point ou une virgule. Si, par exemple, la locale courante estde_DE.UTF-8
(la localisation standard de l’Allemagne),uptime
va utiliser une virgule comme séparateur. Sachant que dans la langue anglaise américaine c’est le point qui est utilisé comme séparateur, quelle commande fera en sorte queuptime
affiche les décimales en utilisant un point au lieu d’une virgule pour le reste de la session en cours ? -
La commande
iconv
va remplacer tous les caractères en dehors du jeu de caractères cible par un point d’interrogation. Si//TRANSLIT
est ajouté à l’encodage cible, les caractères absents du jeu de caractères cible seront remplacés (translittérés) par un ou plusieurs caractères similaires. Comment peut-on utiliser cette méthode pour convertir un fichier texte UTF-8 nomméreadme.txt
en un fichier ASCII nomméascii.txt
?
Résumé
Cette leçon explique la configuration d’un système Linux pour qu’il fonctionne avec des langues et des paramètres horaires personnalisés. Les concepts d’encodage des caractères et leur paramétrage sont également abordés, étant donné qu’ils sont très importants pour assurer un rendu correct du contenu textuel. La leçon aborde les sujets suivants :
-
Comment les systèmes Linux sélectionnent la langue d’affichage des messages du shell.
-
Comprendre comment les fuseaux horaires affectent l’heure locale.
-
Comment identifier le fuseau horaire approprié et modifier les paramètres du système en conséquence.
-
Qu’est-ce qu’un encodage de caractères et comment faire la conversion entre les différents encodages.
Voici les commandes et les procédures abordées :
-
Variables d’environnement liées à la langue et à l’heure, telles que
LC_ALL
,LANG
etTZ
. -
/etc/timezone
-
/etc/localtime
-
/usr/share/zoneinfo/
-
locale
-
tzselect
-
timedatectl
-
date
-
iconv
Réponses aux exercices guidés
-
D’après le résultat suivant de la commande
date
, quel est le fuseau horaire du système en notation GMT ?$ date Mon Oct 21 18:45:21 +05 2019
Il s’agit du fuseau horaire
Etc/GMT+5
. -
Vers quel fichier doit pointer le lien symbolique
/etc/localtime
pour queEurope/Brussels
soit l’heure locale par défaut du système ?Le lien
/etc/localtime
doit pointer vers/usr/share/zoneinfo/Europe/Brussels
. -
Les caractères des fichiers texte peuvent ne pas être rendus correctement dans un système dont l’encodage de caractères est différent de celui utilisé dans le document texte. Comment utiliser
iconv
pour convertir le fichierold.txt
encodé en WINDOWS-1252 vers le fichiernew.txt
en encodage UTF-8 ?La commande
iconv -f WINDOWS-1252 -t UTF-8 -o new.txt old.txt
va effectuer la conversion requise.
Réponses aux exercices d’approfondissement
-
Quelle commande fera de
Pacific/Auckland
le fuseau horaire par défaut pour la session shell en cours ?export TZ=Pacific/Auckland
-
La commande
uptime
affiche, entre autres, la charge moyenne du système avec des décimales. Elle utilise les paramètres régionaux en cours pour décider si le séparateur de décimales doit être un point ou une virgule. Si, par exemple, la locale courante estde_DE.UTF-8
(la localisation standard de l’Allemagne),uptime
va utiliser une virgule comme séparateur. Sachant que dans la langue anglaise américaine c’est le point qui est utilisé comme séparateur, quelle commande fera en sorte queuptime
affiche les décimales en utilisant un point au lieu d’une virgule pour le reste de la session en cours ?La commande
export LC_NUMERIC=en_US.UTF-8
ouexport LC_ALL=en_US.UTF-8
. -
La commande
iconv
va remplacer tous les caractères en dehors du jeu de caractères cible par un point d’interrogation. Si//TRANSLIT
est ajouté à l’encodage cible, les caractères absents du jeu de caractères cible seront remplacés (translittérés) par un ou plusieurs caractères similaires. Comment peut-on utiliser cette méthode pour convertir un fichier texte UTF-8 nomméreadme.txt
en un fichier ASCII nomméascii.txt
?La commande
iconv -f UTF-8 -t ASCII//TRANSLIT -o ascii.txt readme.txt
va effectuer la conversion requise.