tech:caractere_speciaux_unicode_utf8
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| tech:caractere_speciaux_unicode_utf8 [2025/11/21 12:07] – Jean-Baptiste | tech:caractere_speciaux_unicode_utf8 [2026/06/19 16:14] (Version actuelle) – Jean-Baptiste | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | < | ||
| + | {{tag> | ||
| + | |||
| + | # Caractère spéciaux Unicode / UTF8 | ||
| + | |||
| + | Voir : | ||
| + | * [[table_caractere_speciaux_unicode_utf8]] | ||
| + | * [[sed_suppression_caracteres_non_ascii|Supprimer les caractères non imprimables]] | ||
| + | * [[Pb encodage fichier ansible-lint yamllint]] | ||
| + | |||
| + | Voir aussi : | ||
| + | * `convmv` | ||
| + | * `textconv` | ||
| + | * `unaccent` | ||
| + | |||
| + | |||
| + | Sous ouindoze il suffit de maintenir la touche **Alt** puis de taper le code ASCII Étendu en décimal avec le pavé numérique. | ||
| + | |||
| + | Ce n'est pas sans faire rappeler "La Matrice" | ||
| + | |||
| + | Quand est-il sous GNU/Linux ? | ||
| + | |||
| + | Ben, ça fait longtemps que la plupart des distributions sont en UTF-8, donc nous pouvons insérer des caractères Unicode. | ||
| + | |||
| + | Voici comment : | ||
| + | |||
| + | Maintenir simultanément enfoncés les touches `Ctrl + Shift + U` | ||
| + | |||
| + | ** Ne marche que sur les applications GTK ** | ||
| + | |||
| + | Puis tapez le numéro Unicode du symbole souhaité. | ||
| + | |||
| + | Par exemple pour le symbole coché : | ||
| + | |||
| + | `Ctrl + Shift + U` \ | ||
| + | Puis 2713 \ | ||
| + | Donne: ✓ | ||
| + | |||
| + | `Ctrl + Shift + U` \ | ||
| + | Puis 2717 \ | ||
| + | Donne : ✗ | ||
| + | |||
| + | Voir : | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * http:// | ||
| + | |||
| + | |||
| + | ## Pb | ||
| + | |||
| + | ### Pb si certains caractères unicode sous Debian ne sont pas afficher correctement | ||
| + | |||
| + | Solution | ||
| + | ~~~bash | ||
| + | apt-get install unifont | ||
| + | ~~~ | ||
| + | |||
| + | ### Avec l' | ||
| + | |||
| + | Sinon en outil graphique il existe [Gucharmap](http:// | ||
| + | |||
| + | ~~~bash | ||
| + | apt-get install gucharmap | ||
| + | ~~~ | ||
| + | |||
| + | |||
| + | ### Pb ' | ||
| + | |||
| + | Non 7-Bit ASCII | ||
| + | |||
| + | ~~~ | ||
| + | ERROR keystone.common.wsgi UnicodeEncodeError: | ||
| + | ~~~ | ||
| + | |||
| + | ~~~bash | ||
| + | printf ' | ||
| + | #grep ' | ||
| + | ~~~ | ||
| + | |||
| + | |||
| + | ### Pb vim characters " | ||
| + | |||
| + | How to remove " | ||
| + | Wrong locale | ||
| + | |||
| + | Try | ||
| + | ~~~bash | ||
| + | env LC_ALL=en_US.UTF-8 vim README.md | ||
| + | # LC_ALL=C.UTF-8 | ||
| + | ~~~ | ||
| + | |||
| + | Ou | ||
| + | ~~~bash | ||
| + | export LANG=en_US.UTF-8 | ||
| + | export LANGUAGE=en_US: | ||
| + | export LC_CTYPE=" | ||
| + | export LC_NUMERIC=" | ||
| + | export LC_TIME=" | ||
| + | export LC_COLLATE=" | ||
| + | export LC_MONETARY=" | ||
| + | export LC_MESSAGES=" | ||
| + | export LC_PAPER=" | ||
| + | export LC_NAME=" | ||
| + | export LC_ADDRESS=" | ||
| + | export LC_TELEPHONE=" | ||
| + | export LC_MEASUREMENT=" | ||
| + | export LC_IDENTIFICATION=" | ||
| + | export LC_ALL= | ||
| + | ~~~ | ||
| + | |||
| + | |||
| + | ### Pb accent - grep ou diff | ||
| + | |||
| + | Diff NOK lors de : | ||
| + | ~~~bash | ||
| + | docker exec 171daa9d9f62 cat plop.txt > / | ||
| + | diff / | ||
| + | ~~~ | ||
| + | |||
| + | Et grep message `binary file matches` alors qu'il s'agit bien d'un fichier texte. | ||
| + | |||
| + | ~~~ | ||
| + | $ grep red / | ||
| + | grep: / | ||
| + | |||
| + | $ file plop.txt | ||
| + | plop.txt: ISO-8859 text | ||
| + | |||
| + | $ grep --text red / | ||
| + | ## environnement redondM-i$ | ||
| + | |||
| + | $ grep --text red / | ||
| + | grep: (standard input): binary file matches | ||
| + | |||
| + | $ grep --text red / | ||
| + | ## environnement redond | ||
| + | ~~~ | ||
| + | |||
| + | Le caractère E9 est pourtant un caractère correcte en ASCII étendue | ||
| + | |||
| + | |||
| + | ## Solution | ||
| + | |||
| + | * Supprimer les caracères non ASCII | ||
| + | * Ou utiliser `unaccent` | ||
| + | |||
| + | ~~~code | ||
| + | unaccent ISO-8859-1 / | ||
| + | ~~~ | ||
| + | |||
| + | |||
| + | ## CRLF | ||
| + | |||
| + | Voir aussi CRNL : Carriage return (to) newline | ||
| + | |||
| + | https:// | ||
| + | |||
| + | All files must use `\n` for line endings instead of `\r\n` | ||
| + | |||
| + | |||
| + | |||
| + | ### Autres | ||
| + | |||
| + | `/ | ||
| + | |||
| + | ~~~bash | ||
| + | mv App.ini.j2 App.ini.j2.bak | ||
| + | # iconv -f iso-8859-1 -t utf-8 App.ini.j2.bak > App.ini.j2 | ||
| + | iconv -f iso-8859-15 -t utf-8 App.ini.j2.bak > App.ini.j2 | ||
| + | |||
| + | # convmv -f iso-8859-1 -t utf8 DIR | ||
| + | # convmv -f iso-8859-15 -t utf8 DIR | ||
| + | ~~~ | ||
| + | |||
| + | Exemple | ||
| + | ~~~ | ||
| + | install.sh: | ||
| + | iconv -f iso-8859-15 -t utf-8 install.sh > install2.sh | ||
| + | ~~~ | ||
| + | |||
| + | ~~~bash | ||
| + | iconv -f utf-8 -t ascii// | ||
| + | ~~~ | ||
| + | |||
| + | |||
| + | |||
| + | #### Pb hGetContents: | ||
| + | |||
| + | ~~~ | ||
| + | $ shellcheck plop.sh | ||
| + | plop.sh: plop.sh: hGetContents: | ||
| + | |||
| + | $ file plop.sh | ||
| + | plop.sh: | ||
| + | |||
| + | $ iconv -t utf-8 plop.sh > mkiso-debian3.sh | ||
| + | iconv: illegal input sequence at position 2582 | ||
| + | |||
| + | $ iconv -f iso-8859-1 -t utf-8 plop.sh > plop2.sh | ||
| + | ~~~ | ||
| + | |||
| + | |||
| + | ~~~ | ||
| + | $ file plop* | ||
| + | plop1.tcl: | ||
| + | plop2.tcl: | ||
| + | |||
| + | |||
| + | $ dos2unix plop1.tcl | ||
| + | $ dos2unix plop2.tcl | ||
| + | $ file plop* | ||
| + | plop1.tcl: | ||
| + | plop2.tcl: ISO-8859 text | ||
| + | ~~~ | ||
| + | |||
| + | ~~~bash | ||
| + | diff <(cat -A plop.yml) <(cat plop.yml | sed -e ' | ||
| + | ~~~ | ||
| + | |||
| + | |||
| + | ## Autres | ||
| + | |||
| + | |||
| + | Source : https:// | ||
| + | |||
| + | ### Idée #1 | ||
| + | |||
| + | Adoptez une approche radicalement différente : modifiez le fichier en UTF-8, suivez-le dans Git en UTF-8, mais demandez à votre outil de build de le convertir en ISO-8859-1 afin que la machine Windows puisse l' | ||
| + | |||
| + | Unicode contient tous les caractères ISO-8859-1 en tant que points de code : | ||
| + | https:// | ||
| + | |||
| + | Je pense que cela signifie que tous les caractères ISO-8859-1 ont un équivalent exact en Unicode, vous devriez donc pouvoir représenter parfaitement les fichiers ISO-8859-1. | ||
| + | |||
| + | Cela suppose que vous n' | ||
| + | |||
| + | ### Idée #2 | ||
| + | |||
| + | Configurez des filtres smudge et clean https:// | ||
| + | |||
| + | |||
| + | |||
