Le vénérable standard Unicode fait l’objet d’une mise à jour. Nous rapportons l’actualité et entrons dans les coulisses avec un bref aperçu de la philosophie et de l’utilisation pratique de la norme.
La plupart des gens cessent de penser à Unicode lors de l’introduction de nouveaux caractères Emoji. Cependant, l’objectif principal de la norme Unicode n’est pas seulement de partager des caractères expressifs à utiliser sur des applications mobiles uniquement pour le plaisir ; il facilite également la communication dans toutes les langues lisibles par l’homme et soutient la science et la recherche avec ses symboles scientifiques et ses écritures en langues anciennes.
Dans les propres mots du consortium Unicode :
La norme Unicode est la base de tous les logiciels et communications modernes dans le monde, y compris tous les systèmes d’exploitation, navigateurs, ordinateurs portables et smartphones modernes, ainsi que l’Internet et le Web (URL, HTML, XML, CSS, JSON, etc.).
Cela dit, Unicode v14 a ajouté 838 caractères, dont cinq nouveaux scripts et 37 nouveaux caractères emoji.
Les scripts sont :
- Toto, utilisé pour écrire la langue Toto dans le nord-est de l’Inde
- Cypro-Minoan, une écriture historique non déchiffrée principalement utilisée sur l’île de Chypre et ses environs à la fin de l’âge du bronze (vers 1550-1050 avant notre ère).
- Vithkuqi, une écriture historique utilisée pour écrire l’albanais et en pleine renaissance moderne
- Vieux ouïghour, une écriture historique utilisée en Asie centrale et ailleurs pour écrire les langues turque, chinoise, mongole, tibétaine et arabe
- Tangsa, une écriture moderne utilisée pour écrire la langue Tangsa, qui est parlée en Inde et au Myanmar
Cela montre qu’Unicode n’est pas seulement utile pour la communication dans le monde moderne, mais est également le gardien qui protège la mémoire des cultures de niche ou éteintes.
En élaborant plus, techniquement, un script Unicode (selon Wikipedia) est :
Ensemble de lettres et d’autres signes écrits utilisés pour représenter des informations textuelles dans un ou plusieurs systèmes d’écriture. Certains scripts prennent en charge un et un seul système d’écriture et une seule langue, par exemple l’arménien.
D’autres scripts prennent en charge de nombreux systèmes d’écriture différents ; par exemple, le script latin prend en charge l’anglais, le français, l’allemand, l’italien, le vietnamien, le latin lui-même et plusieurs autres langues.
Dans les expressions régulières, vous les trouverez généralement notées avec p{..} , comme p{Latin} etc.
En ce qui concerne l’aspect amusant, la v14 a également ajouté les 37 caractères emoji suivants :
- Visage fondant
- Visage avec les yeux ouverts et la main sur la bouche
- Visage avec œil furtif
- Visage saluant
- Visage en pointillé
- Visage avec bouche diagonale
- Visage retenant les larmes
- Main droite
- Main gauche
- paume vers le bas
- paume vers le haut
- Main avec l’index et le pouce croisés
- Index pointant vers la visionneuse
- Coeur Mains
- Lèvre mordante
- Personne avec couronne
homme enceinte - Personne enceinte
- Troll
- corail
- Lotus
- Nid vide
- Nid avec des oeufs
- Haricots
- Verser du liquide
- Pot
- Toboggan de l’aire de jeux
- Roue
- Bouée à Anneau
- Hamsa
- Boule à facettes
- Batterie faible
- Béquille
- Radiographie
- Bulles
- Carte d’identité
- Signe égal lourd
Chez I Programmer, nous avons une couverture étendue du monde Emoji. Vérifier Le sous-comité Emoji rouvre le processus de soumission et La Journée mondiale des Emoji choisit la seringue pour résumer 2021 pour le dernier.
D’autres ajouts mineurs ont trouvé leur place, notamment :
- De nombreux ajouts latins pour une IPA étendue
- Ajouts d’écriture arabe utilisés pour écrire des langues à travers l’Afrique et en Iran, au Pakistan, en Malaisie, en Indonésie, à Java et en Bosnie, et pour écrire des titres honorifiques et des ajouts à usage coranique
- Ajouts de caractères pour prendre en charge les langues d’Amérique du Nord et des Philippines, de l’Inde et de la Mongolie
Tout va bien, mais pour mettre la main sur les nouveaux personnages, vous devrez attendre que vos applications et polices préférées soient mises à niveau pour prendre en charge la nouvelle norme. Le même délai s’applique à la prise en charge du langage de programmation. Perl est toujours le plus rapide à adopter les normes Unicode les plus récentes. Par exemple, le support d’Unicode 10 est venu avec la version 5.28 de Perl en 2018, tandis que Perl 5.32.0 est venu avec Unicode 13. La dernière version de Perl est la 5.34.0, publiée en mai 2021, et en tant que telle, elle n’a pas incorporé la dernière norme mais Je suppose que le prochain le fera.
Et que pouvez-vous faire avec la programmation de Scripts ? Utilisez-les pour manipuler du texte comme dans les expressions régulières. Ceci est décrit dans Expressions régulières Perl avancées – Constructions étendues où j’ai un fichier :
myimageऄwithधDevanagariमcharsफ’.png
dans lequel les caractères hindi DEVANAGARI sont mélangés avec le latin. Le fichier doit être distribué sur plusieurs plates-formes et systèmes d’exploitation qui pourraient ne pas être compatibles Unicode. Ainsi, son nom de fichier doit être portable et compatible avec les systèmes de fichiers des différents systèmes d’exploitation.
Quelle est la meilleure façon d’y parvenir? En renommant le fichier pour qu’il ne contienne que des caractères du jeu de caractères ASCII universellement reconnaissable, ce qui signifie que nous devons le supprimer de tous les caractères non ASCII. Mais pour ce faire, nous devons d’abord introduire des blocs en plus des scripts. Selon perlunicode :
Unicode définit également des blocs de caractères. La différence entre les scripts et les blocs est que le concept de scripts est plus proche des langues naturelles, tandis que le concept de blocs est davantage un regroupement artificiel basé sur des groupes de caractères Unicode avec des valeurs ordinales consécutives. Par exemple, le bloc “Basic Latin” est l’ensemble des caractères dont les ordinaux sont compris entre 0 et 127 inclus ; en d’autres termes, les caractères ASCII. Le script “Latin” contient quelques lettres de celui-ci ainsi que plusieurs autres blocs, comme “Latin-1 Supplement”, “Latin Extended-A”, etc., mais il ne contient pas tous les caractères de ces blocs.
Armés de ces connaissances, nous pouvons procéder à la résolution du problème de portabilité. Il y a le [[:ascii:]]La classe POSIX et/ou le bloc Unicode p{InBasicLatin} qui correspondent à tous les caractères ASCII, donc par négation [^[:ascii:]]ou P{InBasic_Latin} nous arrivons à tous les non-ASCII. Comme tout en Perl, TMTOWTDI (il y a plus d’une façon de le faire). et cet exemple peut servir de base à la formation de cas d’utilisation plus élaborés ultérieurement.
Mais qu’entendons-nous réellement par ASCII ?
Nous entendons des caractères avec des valeurs ordinales inférieures à 128 (en d’autres termes en anglais américain uniquement), nous devons donc supprimer ceux au-delà de 127, ce qui nous conduit à une condition “supprimer tous les caractères dont la valeur ordinale est > 127” à utiliser dans la construction de l’expression régulière.
Pour la solution, vérifiez le reste de l’article, mais le fait est que la norme Unicode organise les concepts en blocs concrets afin que vous puissiez les utiliser de manière intuitive.
Toutes les informations sur les scripts, les blocs et le reste peuvent être trouvées dans la documentation claire de la norme sur Unicode.org. Et vous pouvez trouver tous les nouveaux ajouts Emoji à Emoji récemment ajouté.
Plus d’information
Annonce de la norme Unicode®, version 14.0
Articles Liés
Expressions régulières Perl avancées – Constructions étendues
Expressions régulières avancées de Perl – L’expression de code de modèle
Interroger Unicode à partir de la ligne de commande
Apprivoiser les expressions régulières
Générer automatiquement des expressions régulières avec la programmation génétique
Pour être informé des nouveaux articles sur I Programmer, inscrivez-vous à notre bulletin hebdomadaire,abonnez-vous au flux RSS et suivez-nous sur Twitter, Facebook ou Linkedin.
commentaires
ou envoyez votre commentaire à : comments@i-programmer.info
.
— to www.i-programmer.info