🏠 Apprendre de nouveaux caractùres – Unicode

English here!

Savais-tu que tu pouvais tapper plus de caractÚres que ceux qui sont sur ton clavier ? Apprends à quand il est plus clair de les utiliser.

Chaque caractĂšre dans le monde informatique correpond Ă  un nombre, par example A vaut 65, a vaut 97, Ă© vaut 233, la lettre grecque α vaut 945. Ce nombre est appelĂ© le point de code Unicode. Tu as peut-ĂȘtre entendu parler de code ASCII. US-ASCII est vieux et crĂ©Ă© par des amĂ©ricains, il reprĂ©sente seulement les 128 premiers caractĂšres, donc 65 pour A est un code ASCII et un code Unicode, mais 945 pour α n'existait pas Ă  l'Ă©poque d'ASCII.

Quand on parle d'un point de code Unicode comme 945, tout le monde aime utiliser la notation standard U+xxxx oĂč xxxx est le code en hexadĂ©cimal. La lettre Ă© est donc appelĂ©e U+00E9 car E9 est l'hexadĂ©cimal de 233 en dĂ©cimal. Des tables existent avec la liste de tous les caractĂšres. Unicode donne aussi un nom unique en anglais n'utilisant que les caractĂšres A-Z et les tirets comme LATIN SMALL LETTER E WITH ACUTE pour Ă©.

Pour encoder un ou plusieurs charactÚres en une séquence d'octet, on a besoin d'un encodage comme le trÚs populaire utf-8. Pour une histoire plus détaillée, allez ici. Une référence sur Internet est également ce blog post

Unicode est bien plus complexe que juste décider d'un nombre pour chaque caractÚre, il parle aussi des bidirectional characters, combining characters, CJK (Chinois, Japonais, Koréen) characters, emoji, normalization, et plein d'autres.

Sur cette page, je vous parle de plein de caractĂšres qui peuvent vous ĂȘtre utile et comment les tapper de maniĂšre rapide, facile et que l'on peut facilement retenir . N'hĂ©sitez pas Ă  partager un paragraphe en particulier en faisant un clic droit ou long press sur un des nombreux #hashtag et donner le lien Ă  vos amis ou colllĂšgues !

Trucs de math

Beaucoup de langues

The aim of Unicode is to easily manage every language of the word, even the old/anciant ones.

Attention should be taken that the symbol A can then be different characters :

Diacritics are also part of Unicode:

Different currency symbols are useful: $ € „ Âą € ₿ â‚œ àžż â‚č. List on wikipedia.

Typographie

Comment tapper des accents ?

Comment tapper n'importe quel caractÚre unicode, y compris les accents ?

Si tu connais le point de code Unicode comme U+2205

Notez néamoins que retenir une liste de nombre est stupide donc préférez les autres méthodes de cette page...

Quand tu sais le dessiner Ă  la main

Notes sur les claviers français

Clavier virtuels sur le web

Opérations Unicode

Python a un support built-in d'unicode depuis la version 3, en python 2 il y a avait deux typles de strings, les strings normales et les strings unicode. Python a également un module import unicodedata pour des opérations plus complexes liées à l'Unicode.

En mode interactif dans ma calculette python, je peux par exemple faire uniline("αÎČÎł") pour avoir une belle liste :

["U+03B1 α GREEK SMALL LETTER ALPHA",
 "U+03B2 ÎČ GREEK SMALL LETTER BETA",
 "U+03B3 Îł GREEK SMALL LETTER GAMMA"]

Voici la définition de la fonction uniline, pour plus de fun, voir mon fichier uniutils.py :

import unicodedata

def uniname(s):
    """ Ă© → LATIN SMALL LETTER E WITH ACUTE """
    if len(s) == 1:
        return unicodedata.name(s, '?')
    else:
        return [uniname(x) for x in s]

def uord(s):
    """ Ă© → U+00E9 """
    if len(s) == 1:
        return 'U+' + hex(ord(s))[2:].zfill(4).upper()
    else:
        return [uord(x) for x in s]

def uniline(s):
    """ Ă© → U+00E9 Ă© LATIN SMALL LETTER E WITH ACUTE """
    if len(s) == 1:
        return uord(s) + ' ' + s + ' ' + uniname(s)
    else:
        return [uniline(x) for x in s]
More readings

https://docs.python.org/fr/3.7/howto/unicode.html