Sie sind auf Seite 1von 56

M2 Documents Numriques Multilingues

Ecritures numriques et multilinguisme


Franois Stuck (Inalco / Tim)
fstuck@inalco.fr

Polices spcifiques utilises : MS Arial Unicode, code 2000, code2001

1 critures numriques et multilinguisme 2012-2013

La reprsentation des caractres


Petites histoires de codage

La reprsentation interne (codage & encodage) Les codages spcifiques :


Le codage universel : Quelques outils
iso8859-X, windows 125X

Unicode

2 critures numriques et multilinguisme 2012-2013

Un exemple de texte multilingue (hum 1 !)

codage iso8859-1 : occidental


critures numriques et multilinguisme 2012-2013

Un exemple de texte multilingue (hum 2 !)

codage iso8859-7 : grec


critures numriques et multilinguisme 2012-2013

Un exemple de texte multilingue (ok !)

codage utf8

(autodtection par notePad++)

critures numriques et multilinguisme 2012-2013

Un exemple de texte multilingue (ok)

codage utf8 sans Bom


critures numriques et multilinguisme 2012-2013

Coder un message

Coder pour : transmettre dans le temps ou lespace rendre intelligible ou pas (crypter)
On distinguera : le codage (reprsentation symbolique), lencodage (sa ralisation physique)

7 critures numriques et multilinguisme 2012-2013

Le carr de Polybius (200 AC)

1 1 2 3

4
5

N de ligne = 2

N de colonne = 3
8

Le smaphore marin

0 0 45 90 135 180 225 270 315

45

90

135

180

225

270

315

J W D Y R M F U Q L E T P K O I H C B A

Z la lettre M V S N G X
90

BRAVO
9

Quelques codes encore

Le morse

Le braille
cloches & tambours
http://campanologie.free.fr/pdf/Code_et_langage_des_cloches.pdf
http://www.abm.fr/abm/recit/recikersal.html

10 critures numriques et multilinguisme 2012-2013

Le codage des caractres


Les caractres (lettres, chiffres, idogrammes, symboles) sont reprsents (cods) sous forme de nombres, de valeurs conventionnelles dpendant du systme de codage adopt (spcifique ou universel).

Un consensus : les caractres de base ! Majuscules Minuscules Chiffres Ponctuation

A B Y Z

65 66 89 90

a b y z

97 98 121 122

0 1 8 9

48 49 56 57

. , ; ? @

46 44 59 63 64

Quelle valeur pour C, w, 5, L ?


11 critures numriques et multilinguisme 2012-2013

L o a se corse
Les caractres spcifiques : accentus, dautres critures !

Les codages spcifiques (ISO 8859-X, Windows 125X)


233 233 233 233
8859-1,2,3,4,15 8859-5 8859-6 8859-7

Le codage universel / unique : Unicode 233 1065 1609 905


12 critures numriques et multilinguisme 2012-2013

La reprsentation interne
Reprsentation binaire

un ordinateur manipule et stocke toute information sous forme de suite de 0 et 1 (bits) regroups par octet (byte)

Caractres

Z 0 0 255 +127 -128 2,78 102

0101 1010 ( 0011 0000 1110 1001 0001 0000 1110 1100 0010 1111 0101 0100 0000 0000 1111 1111 0111 1111 1111 1111
0100

(unicode) (entiers naturel) (entiers signs)

Nombres

(rels, virgule flottante)

0011 1000 1011 0000 0000 0000 0000


13

critures numriques et multilinguisme 2012-2013

Visualisation binaire

iso8859-1
14 critures numriques et multilinguisme 2012-2013

Visualisation hxadcimale

iso8859-1
15 critures numriques et multilinguisme 2012-2013

Notation binaire ?

la base 10 ou dcimale :

237 = 2x100 + 3x10 + 7x1 = 2x102 + 3x101 + 7x100 les puissances de 10

la base 2 ou binaire :

11101101

= 1x27 +1x26 + 1x25 +0x24 + 1x23 + 1x22 + 0x21 + 1x20 = 1x128 + 1x64 + 1x32 + 0x16 + 1x8 + 1x4 + 0x2 + 1x1 les puissances de 2

16 critures numriques et multilinguisme 2012-2013

Notations binaire et hxadcimale

La notation binaire est peu lisible, on lui prfre la notation hxadcimale base 16, en : 1. regroupant les bits 4 par 4 2 pour chacun des groupes : calculant sa valeur (de 0 15) le substituant par un chiffre hexadcimal de cette valeur parmi : 0 1 2 3 4 5 6 7 8 9A B C D E F

111011012 = 23710 = ?16

17 critures numriques et multilinguisme 2012-2013

La base 16 au bout des doigts

18 critures numriques et multilinguisme 2012-2013

Notations binaire et hxadcimale

111011012 ? (1110)(1101)
1x23 + 1x22 + 1x21 + 0x20 = 1x8 + 1x4 + 1x2 + 0x1 1x23 + 1x22 + 0x21 + 1x20 = 1x8 + 1x4 + 0x2 + 1x1

= 1410 (E)(D)

= 1310

ED16
notation plus compacte et mnmoniques !!!
19 critures numriques et multilinguisme 2012-2013

Vrification hxadcimale

ED16

= Ex161 + Dx160 = 14x16 + 13x1


Puissances de 16

= 23710

20 critures numriques et multilinguisme 2012-2013

Quelques oprations hxadcimales


1 1

addition

+ 3A16 E616 ______ 13016

+ 5810 24610 ______ 30410 30410 = ?16

conversion dcimale hxa 304 / 256 = 1 + 48 (reste) 48 / 16 = 3 + 0 (reste) 0 / 1 = 0 soit 13016

diviser le reste par les puissances de 16 dcroissantes

21 critures numriques et multilinguisme 2012-2013

Usage hxadcimaux notation des caractres %20 URL, espace OxED perl, Z ძ entit html,
ძ - -

notation des couleurs RGB


color : #B4F9A8
rgb (180, 250, 164)

lecture de tableaux de caractres


22 critures numriques et multilinguisme 2012-2013

Lecture hexadcimale dun tableau (ASCII)

0 1 2 3 4 5 6 7 8 9 A B C D E F 0 0 1 2 3 4 5 6 7 8 9 A B C D E F caractres de contrle et divers non imprimables 0 1 caractres de contrle et divers non imprimables 1 2 ! " # $ % & ' ( ) * + , - . / 2 0 1 ! 3 3 @ A 4 0 1 4 @ Q 5 P A 5 6 7 " 2 2 B # 3 3 C
C S S c

$ 4 4 D
D T T d

% 5 5 E
E U U e

& 6 6 F
F V V f

' 7 7 G
G W W g

( 8 8 H
H X X h

) 9 9 I
I Y Y i

* : : J
J Z Z j

+ ; ; K
K [ [ k

, < < L
L \ \ l

= = M
M ] ] m

. > > N
N ^ ^ n

/ ? ? O O _

B R P Q R ` a b ` a r p q b

_ o

c d u v w h y z k l m n o s t e f g x i j { | } ~ Code ascii de Z ? n 5, colonne n A, soit 5A


23

ligne

critures numriques et multilinguisme 2012-2013

Allez, un outil bien pratique

mais nen nabusez pas


24 critures numriques et multilinguisme 2012-2013

des outils et des caractres

(1)

Saisie de caractres :

table des caractres, Babel claviers spcifiques (IME)

Editeur hxadcimal :

notePad++ (plugin HexEd)

Transcodage de textes :
Sauvegarde texte brut Unifier (vers utf8), recode

Gestionnaire de fonte :

MainType, Typograf, XFontManager, Suitcase, Font Reserve


25 critures numriques et multilinguisme 2012-2013

des outils et des caractres Des polices compatibles Unicode


www.alanwood.net/unicode Spcifiques (criture, langue)

(2)

de meilleure qualit et ponctuellement plus compltes (ligatures)


traditional arabic, simSun, chandas (devanagari)

Multiscript (plus ou moins universelle) large couverture multiscript, mais qualit moindre
Arial Unicode MS, 51000 glyphes Code2000, 35000 glyphes Code2001, critures historiques Arial, Times New Roman (occidental + arabe / hbreu)

26 critures numriques et multilinguisme 2012-2013

La foire aux codes

7 bits, 89 caractres : lettres latines, chiffres, ponctuations et 49 16 bits, standard contrles ISO8859-X chinois part la zone ascii, des ASCII codes non compatibles GB 16 bits, standard avec 8859-X ou 125X japonais

8 bits, ajout de 95 caractres spcifiques : langues europennes, arabe, tha, hbreu

JIS

UNICODE proches des 8859-X mais ajout de caractres N critures 8 bits, oublis indiennes

MAC

16 bits, standard Windows125-X16 bits, standard tawanais coren

ISCII-X

Big Five

KPS
27 critures numriques et multilinguisme 2012-2013

La foire aux codes

ISO8859-X

ASCII

GB
MAC

JIS

UNICODE 1.0 UNICODE 5.0 2.0 4.0 3.0


Big Five

Windows125-X

ISCII-X

KPS
28 critures numriques et multilinguisme 2012-2013

Unicode ~ ISO 10646

Un jeu universel de caractres


contemporains :
symboles


numrots entre 0 et 1 114 111
soit de 0 Ox10FFFF

historiques :

29 critures numriques et multilinguisme 2012-2013

Organisation dUnicode
critures historiques notations plans 16 mathmatiques & musicales
Plan 16 Plan 15 priv 0xF0000 Plan 14 priv 0xE0000 SSP Plan 2 0x20000 SIP Plan 1 0x10000 SMP 0x10FFFF Plan 0 0x0000 0xFFFFF BMP 0xEFFFF 0x100000

critures modernes & symboles

0x2FFFF 0x1FFFF

42000 idogrammes complmentaires

0xFFFF
30 critures numriques et multilinguisme 2012-2013

Les blocs du plan multilingue de base (5.0)

1 plan = 65536 cases Organisation en blocs nomms de caractres adjacents

31

Les blocs et critures Les blocs sont nomms et dlimits. Ils sont homognes : des caractres de mme
criture
(ex. arabe).

0x0000-0x007F : 0x0080-0x00FF : 0x0100-0x017F : 0x0250-0x02AF : 0x0300-0x36F :

ASCII latin 1 (ISO 8589-1) latin tendu A API diacritiques

Une criture : plusieurs blocs non adjacents


0x0374-0x03FC : 0x1F00-0x1FFE : grec et copte grec rgulier

Des trous dans le codage


32 critures numriques et multilinguisme 2012-2013

Unicode en mmoire lencodage


codage : numrotation encodage : reprsentation en mmoire (disque dur, rseau)

Divers types denregistrement Unicode proposs : UTF8, de 1 4 octets Conseill !


compatibilit naturelle ASCII, multiplateformabilit, opaque, par dfaut encodage XML

UTF16 (LE, BE), 2 ou 4 octets

souvent improprement appel Unicode, quasitransparent


moins frquent

(1 ou 2 seizets)

UTF32 (LE, BE), 4 octets


33 critures numriques et multilinguisme 2012-2013

Lencodage UTF8

(1)

Squence doctets opaques pour les caractres non ASCII !


nb 1 2 3 4 0aaaaaaa 110aaaaa 10bbbbbb 1110aaaa 10bbbbbb 10cccccc 11110aaa 10bbbbbb 10cccccc 10dddddd

Valeur utf8

Code caractre
0aaaaaaa 00000aaa aabbbbbb aaaabbbb bbcccccc 000aaabb bbbbcccc ccdddddd

Lentte des octets utf8 : expr. Rg. ^1*0 0 : unique octet ascii 10 : octet non initial 1{2,4}0 : octet initial et taille de la squence

34

Encodage et taille de fichiers

Soit un texte de 1000 caractres langue


swahili arabe coren
(5% daccents)

utf8
1000 x 1 = 1000 1000 x 2 = 2000

utf16

utf32

1000 x 3 = 3000
950 x 1 + 50 x 2 = 1050

1000 x 2 = 2000

1000 x 4 = 4000

franais

35

Lencodage UTF8
exemples

(2)

Valeur utf8
01100101 11000101 10010011 11101100 10011100 10000100
11110000 10010000 10000010 10000000

Code caractre
01100101 00000001 01010011 11000111 00000100 00000001 00000000 10000000 65 0153 C704 10080

Soit : e

36

Affichage dun fichier texte ASCII

RAM bonjour.txt
0 2 1 3 5

CPU
Registre de travail

ASCII
42 6F 6E 6A 6F 75 72

4 6 8

42 6E 6F 72

6F 6A 75

7 9 11 13 15 17 19 21

00

00

6F 75 72 00 6A 00 6E 42 6F polices

lecture

10 12 14 16 18 20

B on j o u r

cran
37

Affichage dun fichier texte Unicode MAC


RAM bonjour.txt
0 2 1 3 5

CPU
Registre de travail

Unicod
0042 006F 006E 006A 006F 0075 0072

4 6 8

00 00 00 00 00 00 00

42 6F 6E 6A 6F 75 72

7 9 11

00

00

6F 75 00 6A 72 00 6E 42 6F polices

lecture

10 12 14 16 18 20

13 15 17 19 21

grand-boutien BE

B on j o u r

cran
38

Affichage dun fichier texte Unicode PC


RAM bonjour.txt
0 2 1 3 5

CPU
Registre de travail

Unicod
0042 006F 006E 006A 006F 0075 0072

4 6 8

00 00 00 00 00 00 00

42 6F 6E 6A 6F 75 72

7 9 11

00

00

6A 00 6E 6F 72 75 42 00 polices

lecture

10 12 14 16 18 20

13 15 17 19 21

petit-boutien LE

cran
39

Affichage dun fichier texte Unicode


FEFF 0042 006F FFFE 4200 006E 4200 6F00 006A 6F00 6E00 006F 6E00 6A00 0075 6A00 6F00 0072 6F00 7500 7500 7200 7200

MAC

un PC est donc incapable de lire correctement ce fichier Unicode :

il aurait du tre sous sa forme inverse :


mais cest le mac qui alors aurait mal interprt un tel fichier ! Un caractre invisible, le BOM est insr en tte de fichier, lors de son enregistrement : - 0xFEFF pour un mac - 0xFFFE, son inverse, pour un PC

PC

Lors de la lecture dun fichier provenant dune autre plateforme le BOM sera lu comme un caractre Unicode invalide.
40

Affichage dun fichier texte Unicode LE PC


RAM Bonjour-bom.txt FEFF 0042 006F 006E 006A 006F 0075 0072 BOM
0 2 4 6 8 10 12 1 3

CPU
Registre de travail

FE
42 6F 6E 6A 6F 75 72

FF
00 00 00 00 00 00 00

5 7 9 11 13 15 17 19 21

00

00

6F 72 75 42 00 6A 00 FF FE 00 6E polices

inverser

14 16 18 20

Caractre invalide : cest un fichier mac inverser

petit-boutien LE

Bo n jo u r

cran
41

Unicode LE et lindirection
Au dpart Unicode reprsent sur 16 bits ! Comment alors reprsenter des codes suprieurs 65535 ?

avec 2 pseudo-caractres unicode des 2


zones dindirection basse et haute. Leur position relative lintrieur de ces zones de 1024 cases permettent daccder 10242 caractres des plans 1 16 Soit 0x10082 comment sera til encod ? = 0001 00000000 10000010
0001000000 0010000010

sparer en groupe de 10 bits


insrer devant

110110 0001000000 110111 0010000010

D820 DC82
42

De grands principes
Unicode traite :

- dcriture et non de langue ! - de caractres et non de glyphes ! - de textes bruts intelligibles

Il sappuie sur :
une smantique de caractres efficace la compositionnalit un ordre logique du texte luniversalit et la compatibilit

Mais quelques entorses


des glyphes des balises
(compatibilit arabe, syllabe corenne) (direction dcriture, tiquettes)
43 critures numriques et multilinguisme 2012-2013

Caractres arabes
Les caractres traditionnels, des caractres tendus (persan, des voyelles combinatoires
0x0628 0x0633 0x628 0x628

ourdou),

Le rendu gre laffichage des bons glyphes contextuels

Et - des ponctuations spcifiques - les chiffres dits indiens - divers marqueurs combinatoires (honorifiques, de nombres,
dates, vers) Aussi des formes de prsentation ! - ligatures - formes contextuelles

44

CJC : les classes de caractres


246 cls isoles vs 115 cls composes (0x2F54) vs (0x2EA1) 70 192 idogrammes unifis rpartis en 3 blocs
http://www.unicode.org/charts/unihan.html

(0x6C34)

Syllabaires : hiragana*, katakana, bopomofo* Ponctuations propres (en pleine ou demi largeur) Symboles & annotations: idogrammes cercls & mois 16 traits calligraphiques

annotations idographique (kanbun)

et aussi quelques caractres de compatibilit


(idogrammes et ponctuations)
45

CJC : les idogrammes manquants


Si un idogramme nest pas dfini : - parmi ceux de la version 5.0 - ou au sein des fontes disponibles

Le signaler avec Lapprocher avec

(geta) 0x3013 (indic. de variante idographique) 0x303E

(0x303E 0x9149)

Le dcrire avec les 12 descripteurs idographiques dfinis entre 0x2FF0 et 0x2FFB :


= (Ox2FF2 0x2EA1 0x53E4 0x6708)

46

CJC : le hangul
Lcriture corenne (hangul) affiche des syllabes constitues de caractres phonmiques (jamo) inscrites dans un carr.

2 blocs unicode :
11 172 syllabes prcomposes selon les 6 agencements spatiaux et classes par ordre syllabique Les jamos (modernes et archaques): - consonnes (initiales & finales) - voyelles

le rendu compose dynamiquement la syllabe correcte 0x1112 0x1161 0x11AB = 0xD560

2 indicateurs de consonnes (0x115F) ou voyelles (0x1160) absentes permettent de crer des syllabes non standards
47

Caractres indiens

(1)

10 blocs de 0900 0DFF

gumurkhi
goujarati compatibles avec ISCII, permettant la transcription entre critures indiennes kannada

dvanagari

oriya malayalam singhalais

bengali

telugu tamoul
48

Caractres indiens
Une mme logique syllabique :

(2)

des consonnes de base voyelle inhrente /A/ :


0x0915 = /KA/

des voyelles (longue et courtes) dites: indpendantes ( linitiale) 0x0905 =

/A/

dpendantes (ailleurs) sous forme de caractres combinatoires :


un signe, le virama , qui en annulant la voyelle inhrente provoque la cration de ligatures de consonnes
0917 094D 0927 0915 094D 0937 = = /GDHA/ /KSSA/

...mais combin avec ZWNJ, empche la ligature


0917 094D 200C 0927 = /G-DHA/
49

Composition de caractres

Unicode distingue :

les caractres de base, autonomes


idogrammes, symbole)

(lettres, chiffres,

les caractres combinatoires enjolivant un caractre


de base dans son voisinage diacritiques, accents, englobeurs, souligneurs voyelles arabes / hbreux voyelles indiennes :

a
50

Ils sont : chassant ou sans chasse Ils sont cascadables :


a 0x0302 0x0307 0x031F

critures numriques et multilinguisme 2012-2013

Quelques caractres trs spciaux


Les contrleurs de glyphes 0x200C : ZWNJ, antiliant sans chasse interdire une forme contextuelle 0x200D : ZWJ, liant sans chasse forcer une forme contextuelle

0x034F : gluon de graphme regrouper des caractre pour appliquer un caractre combinatoire.
Les espaces 0x200B : ZWS, espace sans chasse crer un dcoupage invisible de mots.
Lindicateur de boutiennet 0xFEFF : BOM, en dbut de texte uniquement
51 critures numriques et multilinguisme 2012-2013

Derrire Unicode

(1)

Une description formelle des caractres


un nom :
GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA

un glyphe indicatif :

0x03AB

un code unique (max 21 bits) : des annotations : synonymies ressemblance nom alternatif commentaires

03A5 0308 266F music sharp sign (voir #) = pound sign, hash, crosshatch, octothorpe Spanish (voir )
52

critures numriques et multilinguisme 2012-2013

Derrire Unicode

(2)

Des proprits associes (des fichiers textes CSV) accessibles par programme
par ex. dans des expressions rgulires sous Perl \p{IsCyrillic}

type de caractres : lettre L : capitale u, bas-de-casse l, titrage t, marque M : diacritique chasse c ou pas n, englobant e nombre N : dcimal d, alphabtique l, autre o, ponctuation P : autre o, tiret d, ouverture s, fermeture e symbole S : autre o, montaire c, mathmatique m, sparateur Z : espace e, lignes l, paragraphee p commande C : formatage f, indirection s M de type ? Lu
53 critures numriques et multilinguisme 2012-2013

Derrire Unicode

(3)

des proprits (suite)

bloc & criture dapartenance correspondance entre casses


diverses classes de caractres :
caractres viter, ignorables, points mous, mathmatiques, guillemets, tirets, ponctuations terminales

les idogrammes Unihan


voir

prononciations mandarin/cantonais/, traduction, sources, http://www.unicode.org/Public/UNIDATA/

54 critures numriques et multilinguisme 2012-2013

Unicode cest aussi

Des directives dimplmentation dans des applications grant du texte:


- algorithme bidi
rendu bidirectionnel

- composition de caractres & normalisations


recherche de texte

- algorithme de tri
comparaison alphabtique

55 critures numriques et multilinguisme 2012-2013

Perl et Unicode Caractres individuels


\x{263a} = \N{WHITE SMILING FACE} avec : use charnames :full; catgories \p{isPunct} \P{isPunct}

Classes de caractres
toute ponctuation tout caractre autre que pontuation

critures \p{Cyrillic} tout \p{Alphabetic}

caractre cyrillique
tout caractre alphabtique

Voir Perl/html/lib/Pod/perlretut.html#part_2__power_tools Perl/html/lib/Pod/perlunicode.html


56 critures numriques et multilinguisme 2012-2013

Das könnte Ihnen auch gefallen