Sujet : unicode
-
Décalages de texte en JavaScript : distinguer unités UTF-16, points de code et caractères visibles
Nommer l'unité du décalage à chaque frontière d'éditeur ou d'API, et convertir délibérément avant de découper le texte.
-
Normaliser l'Unicode avant de comparer des identifiants
Choisir une politique de normalisation pour les identifiants lisibles par des humains, sans modifier les jetons opaques ni confondre des caractères visuellement similaires.
-
Texte invisible et réordonné : contrôles bidirectionnels, caractères de balisage et caractères ambigus dans le code et les prompts
Unicode permet à un texte de contenir des caractères qu'une personne relectrice ne peut pas voir, ou qui réordonnent ce qui s'affiche. Les contrôles bidirectionnels peuvent faire lire le code source différemment de la façon dont il compile, les caractères de balisage (tag characters) peuvent cacher des instructions qu'un modèle reçoit tout de même, et les caractères ambigus (confusables) imitent des identifiants. La détection consiste à examiner les points de code, pas le rendu.
-
Pièges des SMS : encodage GSM-7 face à UCS-2 et segmentation des messages
Un SMS transporte 140 octets : 160 caractères en GSM-7 ou 70 en UCS-2. Un seul caractère hors GSM-7 (une apostrophe courbe, un émoji) fait basculer tout le message en UCS-2 ; les messages plus longs sont découpés en segments de 153 ou 67 caractères, que les opérateurs facturent généralement séparément. Il convient de compter les segments avant l'envoi et de normaliser la ponctuation.
-
Les collations dans PostgreSQL : libc, ICU et le fournisseur builtin, et pourquoi une mise à jour de bibliothèque peut corrompre un index
Une collation détermine comment le texte est trié et comparé ; PostgreSQL l'obtient d'un fournisseur (libc, ICU, ou le fournisseur intégré avec les ordres par point de code C et C.UTF-8), fixe la collation par défaut de chaque base de données à sa création, et permet des dérogations par colonne ou par expression. Les collations linguistiques de libc ou d'ICU changent quand la bibliothèque change, ce qui invalide les index B-tree sur du texte ; il faut donc choisir le fournisseur délibérément et réindexer après une mise à jour du système d'exploitation ou d'ICU.
-
Structure MIME d'un e-mail : multipart/alternative, la partie texte brut et les encodages
Un message combinant texte et HTML est un multipart/alternative dont les parties sont ordonnées de la plus sobre à la plus riche (text/plain en premier, text/html en dernier) ; les corps contenant des octets non-ASCII utilisent quoted-printable ou base64, et les en-têtes utilisent les mots encodés de la RFC 2047. Générer la partie texte à partir des mêmes données que le HTML, échapper les variables, et respecter les limites de longueur de ligne.
Lisible par machine : JSON