Man page - charsets(7)
Packages contains this manual
- shm_overview(7)
- nss(5)
- proc_mtrr(5)
- intro(7)
- tcp(7)
- iso_8859-9(7)
- armscii-8(7)
- proc_kpagecount(5)
- initrd(4)
- mouse(4)
- proc_stat(5)
- x25(7)
- proc_interrupts(5)
- fifo(7)
- repertoiremap(5)
- icmp(7)
- futex(7)
- feature_test_macros(7)
- lp(4)
- bpf-helpers(7)
- epoll(7)
- proc_sys_dev(5)
- namespaces(7)
- proc_sysrq-trigger(5)
- proc_bus(5)
- cp1251(7)
- proc_pid_maps(5)
- proc_sys_vm(5)
- proc_pid_projid_map(5)
- st(4)
- proc_pid(5)
- issue(5)
- pid_namespaces(7)
- unicode(7)
- inode(7)
- hosts.equiv(5)
- iso-8859-13(7)
- proc_fb(5)
- proc_modules(5)
- proc_pid_autogroup(5)
- keyrings(7)
- sysvipc(7)
- proc_kmsg(5)
- cgroups(7)
- latin6(7)
- proc_pid_uid_map(5)
- unix(7)
- proc_pid_io(5)
- pts(4)
- packet(7)
- ld-linux.so(8)
- tzselect(8)
- iconv(1)
- proc_pid_syscall(5)
- proc_pid_net(5)
- proc_pid_pagemap(5)
- tty(4)
- proc_profile(5)
- standards(7)
- proc_pid_mounts(5)
- filesystems(5)
- iso-8859-15(7)
- locale(5)
- iso_8859_3(7)
- xattr(7)
- iso-8859-2(7)
- proc_uptime(5)
- persistent-keyring(7)
- credentials(7)
- proc_pid_timers(5)
- utmpx(5)
- vcsa(4)
- proc_pid_exe(5)
- proc_net(5)
- proc_timer_stats(5)
- ip(7)
- proc_pid_fd(5)
- ptmx(4)
- user_namespaces(7)
- resolv.conf(5)
- url(7)
- iso_8859_5(7)
- iso_8859-8(7)
- urn(7)
- process-keyring(7)
- proc_pid_auxv(5)
- proc_ksyms(5)
- proc_ide(5)
- veth(4)
- ldd(1)
- proc_swaps(5)
- landlock(7)
- proc_vmstat(5)
- system_data_types(7)
- cp1252(7)
- lirc(4)
- proc_kpageflags(5)
- random(7)
- precedence(7)
- cpuset(7)
- proc_pid_ns(5)
- acct(5)
- latin4(7)
- proc_pid_cgroup(5)
- proc_cpuinfo(5)
- iso_8859-2(7)
- proc_keys(5)
- charsets(7)
- pldd(1)
- proc_pid_stat(5)
- rtnetlink(7)
- netlink(7)
- ram(4)
- mem(4)
- iso-8859-6(7)
- proc_key-users(5)
- iso_8859_15(7)
- fanotify(7)
- proc_sys_net(5)
- sysfs(5)
- math_error(7)
- latin1(7)
- proc_pid_root(5)
- nptl(7)
- proc_cgroups(5)
- proc_iomem(5)
- proc_pid_statm(5)
- sem_overview(7)
- hier(7)
- full(4)
- proc_pid_status(5)
- proc_pid_cwd(5)
- proc_pid_cpuset(5)
- proc_scsi(5)
- uri(7)
- proc_diskstats(5)
- iso_8859_6(7)
- latin2(7)
- latin5(7)
- man-pages(7)
- ld.so(8)
- uts_namespaces(7)
- proc_pid_mountstats(5)
- intro(3)
- proc_pid_seccomp(5)
- proc_pid_wchan(5)
- attributes(7)
- symlink(7)
- mount_namespaces(7)
- charmap(5)
- tis-620(7)
- iso-8859-10(7)
- getent(1)
- proc_buddyinfo(5)
- ttytype(5)
- rtc(4)
- proc_malloc(5)
- suffixes(7)
- sln(8)
- signal(7)
- proc_sys_abi(5)
- signal-safety(7)
- time_namespaces(7)
- proc_pid_comm(5)
- raw(7)
- gai.conf(5)
- proc_crypto(5)
- locale(1)
- iso-8859-3(7)
- motd(5)
- proc_meminfo(5)
- iso-8859-8(7)
- protocols(5)
- proc_pid_map_files(5)
- pthreads(7)
- null(4)
- proc(5)
- zdump(8)
- socket(7)
- proc_sys_kernel(5)
- ddp(7)
- memusagestat(1)
- hd(4)
- iso-8859-14(7)
- shells(5)
- pipe(7)
- glob(7)
- proc_self(5)
- network_namespaces(7)
- utmp(5)
- proc_kcore(5)
- nsswitch.conf(5)
- sd(4)
- iso-8859-5(7)
- iso_8859_16(7)
- man(7)
- iso_8859-6(7)
- dir_colors(5)
- mq_overview(7)
- vsock(7)
- ascii(7)
- thread-keyring(7)
- fs(5)
- proc_pid_attr(5)
- proc_sys_debug(5)
- proc_sys(5)
- proc_pid_cmdline(5)
- pty(7)
- services(5)
- cgroup_namespaces(7)
- securetty(5)
- netdevice(7)
- iso_8859_13(7)
- host.conf(5)
- proc_pid_setgroups(5)
- proc_slabinfo(5)
- sock_diag(7)
- iso_8859-14(7)
- iso-8859-11(7)
- iso_8859_11(7)
- operator(7)
- regex(7)
- wavelan(4)
- proc_sys_fs(5)
- nologin(5)
- proc_pci(5)
- koi8-r(7)
- erofs(5)
- intro(2)
- utf8(7)
- proc_kallsyms(5)
- proc_sysvipc(5)
- queue(7)
- proc_sys_sunrpc(5)
- intro(5)
- latin8(7)
- mtrace(1)
- ipc_namespaces(7)
- dsp56k(4)
- iso_8859_4(7)
- proc_pid_smaps(5)
- proc_cmdline(5)
- rpc(5)
- proc_tty(5)
- proc_version(5)
- smartpqi(4)
- proc_pid_timerslack_ns(5)
- aio(7)
- session-keyring(7)
- resolver(5)
- slabinfo(5)
- wtmp(5)
- iso_8859_9(7)
- proc_locks(5)
- mailaddr(7)
- proc_pid_oom_score(5)
- kmem(4)
- iconvconfig(8)
- iso_8859-7(7)
- glibc(7)
- hostname(7)
- proc_thread-self(5)
- ipv6(7)
- iso_8859_7(7)
- proc_kpagecgroup(5)
- core(5)
- time(7)
- units(7)
- proc_dma(5)
- loop(4)
- address_families(7)
- zero(4)
- intro(4)
- procfs(5)
- iso_8859-4(7)
- vdso(7)
- tmpfs(5)
- iso-8859-16(7)
- iso_8859_10(7)
- user-session-keyring(7)
- libc(7)
- proc_fs(5)
- koi8-u(7)
- latin3(7)
- proc_tid_children(5)
- proc_pid_limits(5)
- proc_pid_coredump_filter(5)
- iso_8859-15(7)
- arp(7)
- urandom(4)
- iso_8859-10(7)
- hpsa(4)
- proc_pid_environ(5)
- boot(7)
- ftm(7)
- ld-linux(8)
- proc_driver(5)
- loop-control(4)
- iso_8859-16(7)
- proc_filesystems(5)
- tzfile(5)
- sprof(1)
- proc_pid_task(5)
- proc_pid_oom_score_adj(5)
- proc_mounts(5)
- iso-8859-4(7)
- iso_8859-1(7)
- utf-8(7)
- iso_8859-13(7)
- intro(6)
- proc_timer_list(5)
- rtld-audit(7)
- iso_8859-3(7)
- group(5)
- sched(7)
- proc_pid_clear_refs(5)
- hosts(5)
- iso_8859-11(7)
- numa(7)
- iso_8859_2(7)
- locale(7)
- iso-8859-1(7)
- fuse(4)
- proc_tid(5)
- proc_execdomains(5)
- proc_pid_mountinfo(5)
- intro(8)
- iso_8859_8(7)
- proc_loadavg(5)
- proc_pid_oom_adj(5)
- re_format(7)
- iso_8859_14(7)
- zic(8)
- bootparam(7)
- inotify(7)
- posixoptions(7)
- proc_partitions(5)
- iso-8859-9(7)
- proc_pid_mem(5)
- networks(5)
- proc_sys_user(5)
- udp(7)
- proc_zoneinfo(5)
- latin10(7)
- proc_pid_fdinfo(5)
- proc_pid_stack(5)
- memusage(1)
- spufs(7)
- pkeys(7)
- path_resolution(7)
- proc_ioports(5)
- intro(1)
- ldconfig(8)
- msr(4)
- svipc(7)
- port(4)
- proc_pid_personality(5)
- cciss(4)
- latin9(7)
- capabilities(7)
- localedef(1)
- vcs(4)
- iso_8859-5(7)
- elf(5)
- proc_sys_proc(5)
- console_codes(4)
- random(4)
- iso-8859-7(7)
- termcap(5)
- cpuid(4)
- environ(7)
- string_copying(7)
- proc_pid_gid_map(5)
- queue(3)
- termio(7)
- user-keyring(7)
- complex(7)
- latin7(7)
- proc_config.gz(5)
- udplite(7)
- kernel_lockdown(7)
- proc_devices(5)
- proc_apm(5)
- iso_8859_1(7)
- proc_pid_numa_maps(5)
apt-get install manpages
Available languages:
en fr es it ja ro zh_TW zh_CN deManual
charsets
NOMDESCRIPTION
ASCII
ISO/IECÂ 8859
KOI8-R et KOI8-U
GBÂ 2312
Big5
JISÂ XÂ 0208
KSÂ XÂ 1001
ISO/IECÂ 2022 et ISO/IECÂ 4873
TIS-620
Unicode
VOIR AUSSI
TRADUCTION
NOM
charsets - Normes de jeux de caractĂšres et internationalisation
DESCRIPTION
Cette page de manuel prĂ©sente diffĂ©rentes normes de jeux de caractĂšres et la façon de les utiliser sous Linux avant quâUnicode ne devienne ubiquitaire. Certains de ces renseignements sont encore utiles aux personnes travaillant avec des systĂšmes ou des documents anciens.
ASCII, GB 2312, ISO/IEC 8859, JIS, KOI8-R, KS et Unicode font partie des normes présentées.
Un accent particulier est mis sur les jeux de caractĂšres qui Ă©taient vĂ©ritablement utilisĂ©s dans les paramĂštres rĂ©gionaux, et non sur la myriade de jeux de caractĂšres provenant dâautres systĂšmes.
ASCII
LâASCII (American Standard Code For Information Interchange) est le jeu de caractĂšres 7 bits original, prĂ©vu pour lâanglais (amĂ©ricain). Il est aussi connu sous le nom US-ASCII. Il est dĂ©crit actuellement dans la norme ISO/IEC 646:1991 IRV (International Reference Version).
DiffĂ©rentes variantes dâASCII sont apparues, remplaçant le dollar par dâautres symboles monĂ©taires et la ponctuation par des caractĂšres accentuĂ©s pour couvrir lâallemand, le français, lâespagnol et dâautres langues en 7 bits. Elles sont toutes obsolĂštes, la glibc ne gĂšre que les paramĂštres rĂ©gionaux dont le jeu de caractĂšres est un sur-ensemble dâASCII.
Comme Unicode, lors de lâutilisation dâUTF-8, est compatible avec ASCII, le texte en simple ASCII est toujours rendu correctement sur les systĂšmes modernes utilisant lâUTF-8.
ISO/IECÂ 8859
LâISO/IEC 8859 est une sĂ©rie de 15 jeux de caractĂšres 8 bits contenant lâASCII dans leur premiĂšre moitiĂ© (7 bits), des caractĂšres de contrĂŽle non imprimables entre les positions 128 et 159, et 96 symboles graphiques de largeur fixe aux emplacements 160 à  255.
De tous ces jeux, le plus important est lâISO/IEC 8859-1 (« alphabet latin nÂș 1 », latin-1). Il Ă©tait massivement adoptĂ© et pris en charge par diffĂ©rents systĂšmes et est remplacĂ© au fur et Ă mesure par Unicode. Les caractĂšres dâISO/IEC 8859-1 sont aussi les premiers 256 caractĂšresdâUnicode.
La prise en charge en console des autres jeux de caractÚres ISO/IEC 8859 est disponible sous Linux, à travers des utilitaires comme setfont (8), qui modifient la correspondance des touches du clavier, la table graphique EGA et utilisent une projection personnalisée de la table de fonte du gestionnaire de console.
Voici une
brĂšve description des jeux de caractĂšres
8859Â :
ISO/IECÂ 8859-1 (Latin-1)
Le latin-1 couvre de nombreuses langues dâEurope, comme lâalbanais, lâanglais, le basque, le danois, lâespagnol, le fĂ©roĂŻen, le galicien, le gallois, lâirlandais, lâislandais, lâitalien, le norvĂ©gien, le portugais et le suĂ©dois. Lâabsences de ligatures « ÄČ » et « ij » du nĂ©erlandais et « Ć » du français, ainsi que lâabsence des guillemets âallemandsâ Ă©taient considĂ©rĂ©es tolĂ©rables.
ISO/IECÂ 8859-2 (Latin-2)
Le latin-2 prend en charge de nombreuses langues dâEurope centrale et de lâEst utilisant lâalphabet latin comme lâallemand, le bosniaque, le croate, le hongrois, le polonais, le slovaque, le slovĂšne et le tchĂšque. Remplacer les « È » et « È » roumains par « Ć » et « ƣ » Ă©tait considĂ©rĂ© tolĂ©rable.
ISO/IECÂ 8859-3 (Latin-3)
Le latin-3 Ă©tait conçu pour couvrir lâespĂ©ranto, le gallois, le maltais et le turc, mais ISO/IEC 8859-9 lâa ensuite supplantĂ© pour le turc.
ISO/IECÂ 8859-4 (Latin-4)
Le latin-4 a introduit des lettres pour les langues de lâEurope du Nord comme lâestonien, le letton et le lituanien, mais il a Ă©tĂ© supplantĂ© par ISO/IEC 8859-10 et ISO/IEC 8859-13.
ISO/IECÂ 8859-5
Alphabet cyrillique prenant en charge le bulgare, le biĂ©lorusse, le macĂ©donien, le russe, le serbe et (presque complĂštement) lâukrainien. Il nâa jamais Ă©tĂ© beaucoup utilisĂ©, consultez les remarques concernant KOI8-R et KOI-U ci-dessous.
ISO/IECÂ 8859-6
Avait Ă©tĂ© créé pour lâarabe. La table ISO/IEC 8859-6 est une fonte de largeur fixe de formes de lettre distinctes, mais un affichage correct doit combiner les lettres en utilisant leurs formes initiale, centrale et finale.
ISO/IECÂ 8859-7
Avait été créé pour le grec moderne en 1987 et mis à jour en 2003.
ISO/IECÂ 8859-8
Prend en charge lâhĂ©breu moderne sans diacritiques (signes de ponctuation). Les diacritiques et lâhĂ©breu biblique dans son ensemble Ă©taient en dehors de la portĂ©e de ce jeu de caractĂšres.
ISO/IECÂ 8859-9 (Latin-5)
Il sâagit dâune variante du latin-1 qui remplace les lettres islandaises rarement utilisĂ©es par des lettres turques.
ISO/IECÂ 8859-10 (Latin-6)
Le latin-6 ajoutait les lettres inuit (Groënland) et same (lapon) qui manquaient au latin-4 pour couvrir toute la zone nordique.
ISO/IECÂ 8859-11
Prend en charge lâalphabet thaĂŻ et est presque identique Ă la norme TIS-620.
ISO/IECÂ 8859-12
Ce jeu de caractĂšres nâexiste pas.
ISO/IECÂ 8859-13 (Latin-7)
Prend en charge les langues des pays baltes, en particulier les caractĂšres lituaniens absents du latin-4.
ISO/IECÂ 8859-14 (Latin-8)
Jeu de caractĂšres celtique, couvrant le breton, le cornique, le gaĂ©lique, le gallois, lâirlandais ancien et le mannois.
ISO/IECÂ 8859-15 (Latin-9)
Le latin-9 est similaire au latin-1 largement utilisé mais remplace les symboles les moins communs par le symbole euro et les lettres françaises et finlandaises qui manquaient au latin-1.
ISO/IECÂ 8859-16 (Latin-10)
Ce jeu de caractĂšres couvre de nombreuses langues dâEurope du Sud-Est et, ce qui est plus important, prend mieux en charge le roumain que le latin-2.
KOI8-R et KOI8-U
Le KOI8-R est un jeu de caractĂšres non ISO trĂšs rĂ©pandu en Russie avant Unicode. La premiĂšre moitiĂ© correspond Ă lâASCII, la seconde est un jeu de caractĂšres cyrilliques un peu mieux conçu que lâISO/IEC 8859-5. Le KOI8-U, basĂ© sur le KOI8-R, a une meilleure prise en charge de lâukrainien. Aucun de ces jeux nâest compatible avec lâISO/IEC 2022, contrairement aux normes ISO/IEC ISO-8859.
La prise en charge du KOI8-R en console est disponible sous Linux, Ă lâaide dâutilitaires en mode utilisateur qui modifient la correspondance des touches du clavier, la table graphique EGA et utilisent une projection personnalisĂ©e de la table de fonte du gestionnaire de console.
GBÂ 2312
GB 2312 est le principal jeu de caractĂšres normalisĂ© en Chine, utilisĂ© pour exprimer le chinois simplifiĂ©. Comme avec le JIS X 0208, les caractĂšres sont projetĂ©s dans une matrice 94x94 sur deux octets pour construire lâEUC-CN. Celui-ci est lâencodage le plus important sous Linux et inclut lâASCII et le GB 2312. Remarquez que lâEUC-CN est souvent appelĂ© GB, GB 2312 ou CN-GB.
Big5
Big5 Ă©tait un jeu de caractĂšres populaire Ă TaĂŻwan pour exprimer le chinois traditionnel (Big5 est Ă la fois un jeu de caractĂšres et un encodage). Câest un sur-ensemble de lâASCII. Les caractĂšres non ASCII sont exprimĂ©s sur deux octets. Les octets 0xA1-0xFE sont utilisĂ©s en prĂ©ambule pour les caractĂšres de deux octets. Le Big5 et son extension Ă©taient largement utilisĂ©s Ă TaĂŻwan et Hong Kong. Il nâest pas compatible ISO/IEC 2022.
JISÂ XÂ 0208
JIS X 0208 est un jeu de caractĂšres normalisĂ© au Japon. Bien quâil y ait plusieurs jeux de caractĂšres normalisĂ©s au Japon, (comme JIS X 0201, JIS X 0212 et JIS X 0213), celui-ci est le plus important. Les caractĂšres sont projetĂ©s dans une matrice 94x94 de deux octets, dont chaque octet est dans lâintervalle 0x21-0x7E. Remarquez que JIS X 0208 est un jeu de caractĂšres, pas un encodage. Cela signifie que JIS X 0208 lui-mĂȘme nâest pas utilisĂ© pour exprimer des donnĂ©es de texte. Il est utilisĂ© comme composant pour construire un encodage comme EUC-JP, Shift_JIS et ISO/IEC 2022-JP. EUC-JP est le plus important encodage sous Linux et inclut lâASCII et le JIS X 0208. Dans lâEUC-JP, les caractĂšres du JIS X 0208 sont exprimĂ©s sur deux octets, chacun Ă©tant le code JIS X 0208 plus 0x80.
KSÂ XÂ 1001
KS X 1001 est un jeu de caractĂšres normalisĂ© en CorĂ©e. Comme dans le JIS X 0208, les caractĂšres sont projetĂ©s dans une matrice 94x94 sur deux octets. KS X 1001 est utilisĂ©, comme le JIS X 0208, comme composant pour construire un encodage comme le EUC-KR, Johab, et ISO/IEC 2022-KR. EUC-KR est lâencodage le plus important sous Linux et inclut lâASCII et le KS X 1001. KS C 5601 est un ancien nom pour le KS X 1001.
ISO/IECÂ 2022 et ISO/IECÂ 4873
Les normes ISO/IEC 2022 et ISO/IEC 4873 décrivent un modÚle de contrÎle des fontes basé sur le fonctionnement du VT100. Ce modÚle est (partiellement) pris en charge par le noyau Linux et xterm (1). Plusieurs encodages de caractÚres basés sur ISO/IEC 2022 ont été définis, en particulier pour le japonais.
Il existe 4 jeux de caractĂšres graphiques, nommĂ©s G0, G1, G2 et G3, lâun dâentre eux est utilisĂ© comme jeu de caractĂšres en cours pour les codes avec le bit de poids fort Ă 0 (par dĂ©faut G0), et un autre est utilisĂ© pour les codes avec le bit de poids fort Ă 1 (initialement G1). Chaque ensemble dispose de 94 ou 96 caractĂšres, et est constituĂ© de caractĂšres sur 7 bits. Ce modĂšle utilise soit les codes 040-0177 (041-0176), soit les codes 0240-0377 (0241-0376). G0 a toujours une taille de 94 caractĂšres et utilise les codes 041-0176.
Le basculement entre les jeux de caractĂšres est effectuĂ© Ă travers les suites ËN (SO ou LS1), ËO (SI ou LS0), ESC n (LS2), ESC o (LS3), ESC N (SS2), ESC O (SS3), ESC (LS1R), ESC } (LS2R), ESC | (LS3R). La fonction LS n rĂ©clame le jeu G n pour les codes dont le bit de poids fort est Ă zĂ©ro. La fonction S n demande le jeu G n pour les codes dont le bit de poids fort est Ă un. La fonction SS n rĂ©clame le jeu G n ( n =2 ou 3) pour le caractĂšre suivant uniquement (quelle que soit la valeur du bit de poids fort).
Un jeu de 94 caractĂšres est dĂ©signĂ© comme jeu G n par une suite ESC ( xx (pour G0), ESC ) xx (pour G1), ESC * xx (pour G2), ESC + xx (pour G3), oĂč xx est un symbole ou une paire de symboles de la norme ISO/IEC 2375 International Register of Coded Character Sets. Par exemple, ESC ( @ sĂ©lectionne le jeu de caractĂšre ISO/IEC 646 en tant que G0, ESC ( A sĂ©lectionne le jeu normalisĂ© au Royaume-Uni (avec la livre sterling Ă la place du diĂšse), ESC ( B sĂ©lectionne lâASCII, ESC ( M sĂ©lectionne un jeu de caractĂšres africain, ESC ( ! A sĂ©lectionne les caractĂšres cubains, etc.
Un jeu de 96 caractĂšres est dĂ©signĂ© comme jeu G n par une suite ESC - xx (pour G1), ESC . xx (pour G2) ou ESC / xx (pour G3). Par exemple, ESC - G sĂ©lectionne lâalphabet hĂ©breu comme G1.
Un jeu de caractĂšres multioctets est dĂ©signĂ© comme jeu G n par une suite ESC $ xx ou ESC $ ( xx (pour G0), ESC $ ) xx (pour G1), ESC $ * xx (pour G2), ESC $ + xx (pour G3). Par exemple, ESC $ ( C sĂ©lectionne les caractĂšres corĂ©ens pour le jeu G0. Le jeu de caractĂšres japonais sĂ©lectionnĂ© par ESC $ B dispose dâune version plus rĂ©cente sĂ©lectionnĂ©e par ESC & @ ESC $ B.
LâISO/IEC 4873 rĂ©clame une utilisation prĂ©cise des jeux de caractĂšres, dans laquelle G0 est fixĂ© (toujours lâASCII), ainsi seuls G1, G2 et G3 peuvent ĂȘtre invoquĂ©s pour les codes avec un bit de poids fort Ă Â 1. En particulier, ËN et ËO ne sont plus utilisĂ©s, ESC ( xx peut seulement ĂȘtre utilisĂ© avec xx=B, et ESC ) xx, ESC * xx, ESC + xx sont Ă©quivalents Ă ESC - xx, ESC . xx, ESC / xx, respectivement.
TIS-620
Le TIS-620 est un jeu de caractĂšre normalisĂ© en ThaĂŻlande, et est un sur-ensemble de lâASCII. De la mĂȘme façon que la sĂ©rie des ISO/IEC 8859, les caractĂšres thaĂŻs sont projetĂ©s dans lâintervalle 0xA1-0xFE.
Unicode
LâUnicode (ISO/IEC 10646) est une norme destinĂ©e Ă reprĂ©senter sans ambiguĂŻtĂ© tous les signes Ă©crits de toutes les langues humaines connues. La structure de lâUnicode offre 21 bits pour chaque caractĂšre. Comme les ordinateurs nâont pas dâentiers avec 21 bits, Unicode est habituellement codĂ© en interne sur 32 bits, ou par des sĂ©ries dâentiers 16 bits (UTF-16) (ne nĂ©cessitant deux entiers 16 bits que pour des caractĂšres rares) ou par une sĂ©rie dâoctets 8 bits (UTF-8).
Linux reprĂ©sente lâUnicode en utilisant le format de transfert sur 8 bits (UTF-8). LâUTF-8 est un encodage Ă longueur variable. Il utilise un octet pour coder 7 bits, 2 octets pour 11 bits, 3 octets pour 16 bits, 4 octets pour 21 bits, 5 octets pour 26 bits, 6 octets pour 31 bits.
ReprĂ©sentons par 0, 1 ou x des bits Ă 0, 1 ou quelconque. Un octet 0xxxxxxx correspond Ă lâUnicode 00000000 0xxxxxxx qui indique le mĂȘme symbole que lâASCII 0xxxxxxx. Ainsi, ASCII nâest pas modifiĂ© par UTF-8, et les gens utilisant uniquement lâASCII ne remarqueront aucun changement : ni dans lâencodage, ni dans les tailles de fichiers.
Un octet 110xxxxx reprĂ©sente le dĂ©but dâun code sur 2 octets, et 110xxxxx 10yyyyyy est assemblĂ© en 00000xxx xxyyyyyy. Un octet 1110xxxx correspond au dĂ©but dâun code sur 3 octets, et 1110xxxx 10yyyyyy 10zzzzzz sont assemblĂ©s en xxxxyyyy yyzzzzzz. Quand lâUTF-8 est utilisĂ© pour encoder les 31 bits de lâISO/IEC 10646 cette progression continue jusquâĂ des codes sur 6 octets.
Pour la plupart des textes en ISO/IEC 8859, cela signifie que les caractĂšres en dehors de lâASCII sont dĂ©sormais encodĂ©s sur deux octets. Cela tend Ă allonger la taille des fichiers textes ordinaires de un Ă deux pourcents. Pour le russe ou le grec, la taille des fichiers textes ordinaires est gĂ©nĂ©ralement doublĂ©e, car la plupart des caractĂšres sont en dehors de lâASCII. Pour les utilisateurs japonais, cela signifie que les codes sur 16 bits couramment employĂ©s prendront dĂ©sormais 3 octets. Des conversions algorithmiques sont possibles depuis certains jeux de caractĂšres (en particulier ISO/IEC 8859-1) vers lâUnicode, mais une conversion gĂ©nĂ©rique nĂ©cessite lâutilisation de tables de conversion pouvant ĂȘtre assez larges pour des codes sur 16 bits.
Remarquez que lâUTF-8 se synchronise automatiquement : 10xxxxxx est la fin dâun code, et tout autre octet est un dĂ©but de code. Notez Ă©galement que les octets ASCII dans un flux UTF-8 ne peuvent que reprĂ©senter les caractĂšres ASCII correspondants. En particulier il nây a pas dâoctet NULL (« \0 ») ou « / » faisant partie dâun code plus grand.
Comme lâASCII, et, en particulier, lâoctet NULL et « / », ne sont modifiĂ©s, le noyau ne remarque pas que lâUTF-8 est utilisĂ©. Il nâa pas Ă se prĂ©occuper de la signification des octets quâil manipule.
La gestion des flux de donnĂ©es Unicode est gĂ©nĂ©ralement effectuĂ©e Ă travers des tables de « sous-fontes » correspondant Ă un sous-ensemble des caractĂšres Unicode. En interne, le noyau utilise lâUnicode pour dĂ©crire les sous-fontes chargĂ©es en mĂ©moire vidĂ©o. Cela signifie que pour une console Linux en mode UTF-8, un jeu de caractĂšres avec 512 symboles diffĂ©rents peut ĂȘtre utilisĂ©. Ce nâest pas assez pour le japonais, le chinois ou le corĂ©en, mais câest gĂ©nĂ©ralement suffisant pour toutes les autres utilisations.
VOIR AUSSI
iconv (1), ascii (7), iso_8859-1 (7), unicode (7), utf-8 (7)
TRADUCTION
La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org> et Grégoire Scano <gregoire.scano@malloc.fr>
Cette traduction est une documentation libre ; veuillez vous reporter Ă la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il nây a aucune RESPONSABILITĂ LĂGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org .