Guides 02

Calcul des octets : UTF-8, EUC-KR et CP949

Pourquoi le coréen occupe tantôt 2 octets, tantôt 3. Comment calculer les octets selon l’encodage, et les pièges des SMS et des bases de données.

Caractères et octets, ce n’est pas pareil

Le nombre de caractères correspond aux lettres que voit un lecteur ; les octets correspondent à la place qu’occupe ce texte une fois stocké dans l’ordinateur. Un même caractère peut occuper un nombre d’octets différent selon l’encodage des caractères (la règle qui convertit les lettres en nombres). Les lettres latines et les chiffres occupent 1 octet dans presque tous les encodages, mais le coréen peut en occuper 2 ou 3 selon l’encodage.

UTF-8 : la norme actuelle

UTF-8 est l’encodage utilisé par les pages web et la plupart des logiciels modernes. Il utilise de 1 à 4 octets selon la valeur du numéro Unicode (point de code) (RFC 3629).

Plage de points de codeOctetsExemples
U+0000 ~ U+007F1Lettres latines de base, chiffres, symboles de base
U+0080 ~ U+07FF2é, ñ, alphabets grec, cyrillique et arabe
U+0800 ~ U+FFFF3Hangeul, kanji, kana
U+10000 ~ U+10FFFF4La plupart des emojis, écritures anciennes

Toutes les syllabes hangeul précomposées (가~힣, U+AC00~U+D7A3) se trouvent dans la troisième plage : en UTF-8, chaque syllabe occupe 3 octets. Par exemple, ‘안녕하세요’ (bonjour) fait 5 caractères et 15 octets.

UTF-16

UTF-16, utilisé en interne par JavaScript, Java et Windows, stocke la plupart des caractères sur 2 octets et ceux situés à partir de U+10000, comme les emojis, sur 4 octets (paire de substitution). C’est pourquoi la longueur d’une chaîne en JavaScript compte un emoji pour 2.

EUC-KR : l’encodage coréen à syllabes précomposées

EUC-KR est un encodage fondé sur la norme industrielle coréenne KS X 1001. Les lettres latines et les chiffres y occupent 1 octet, et les caractères de KS X 1001, 2 octets. KS X 1001 comprend 2 350 syllabes hangeul d’usage courant, 4 888 hanja (caractères chinois), les kana, les alphabets grec et cyrillique et de nombreux symboles.

Le problème, c’est que sur les 11 172 syllabes du hangeul moderne, seules 2 350 y figurent. Les syllabes absentes de la liste, comme ‘똠’, ‘햏’ ou ‘뷁’, ne peuvent pas être représentées avec les deux octets de l’EUC-KR de base. Une annexe de la norme prévoit une méthode de composition sur 8 octets, mais rares sont les logiciels qui la prennent en charge : elles deviennent donc généralement ‘?’ ou provoquent une erreur.

CP949 : la version étendue

CP949 (le « code hangeul unifié » de Microsoft) étend EUC-KR pour représenter les 11 172 syllabes du hangeul moderne sur 2 octets. Comme il a été la page de code coréenne par défaut de Windows, il reste très répandu dans les documents et systèmes coréens anciens. L’habitude de dire « 1 octet pour l’alphabet latin, 2 octets pour le coréen » vient en grande partie de cet encodage.

Quand les octets comptent

Méthode de calcul de cet outil

Les octets UTF-8 sont calculés avec précision à partir du point de code de chaque caractère. Pour EUC-KR et CP949, l’outil vérifie dans la table de caractères réelle de chaque encodage si chaque caractère peut être représenté sur 2 octets. Les caractères non représentables (emojis, syllabes coréennes hors liste, etc.) étant généralement remplacés par un ‘?’ d’un octet, ils sont comptés pour 1 octet et leur nombre est affiché à part. En mode candidature, si vous choisissez le critère ‘Octets (coréen = 2)’, le décompte suit CP949.

Date de référence: 2026-09-23

Ouvrir le compteur de caractères →