Noticias Programación

Anunciada la versión 14 de Unicode

El venerable estándar Unicode se actualiza. Informamos las noticias y vamos detrás de escena con una breve mirada a la filosofía y el uso práctico del estándar.

La mayoría de la gente deja de pensar en Unicode cuando presenta nuevos personajes Emoji. Sin embargo, el propósito principal del estándar Unicode no es solo compartir caracteres expresivos para usarlos en aplicaciones móviles solo por diversión; también facilita la comunicación en todos los lenguajes legibles por humanos, así como apoya la ciencia y la investigación con sus símbolos científicos y escrituras lingüísticas antiguas.

En palabras del consorcio Unicode:

El estándar Unicode es la base de todo el software y las comunicaciones modernas en todo el mundo, incluidos todos los sistemas operativos, navegadores, computadoras portátiles y teléfonos inteligentes modernos, así como Internet y la web (URL, HTML, XML, CSS, JSON, etc.) .

Dicho esto, Unicode v14 agregó 838 caracteres, incluidos cinco nuevos scripts y 37 nuevos caracteres emoji.

Los guiones son:

Toto, utilizado para escribir el idioma Toto en el noreste de la India Cypro-Minoan, una escritura histórica no descifrada utilizada principalmente en la isla de Chipre y áreas circundantes durante la Edad del Bronce Final (ca. 1550-1050 aC).

Publicidad:

Vithkuqi, una escritura histórica utilizada para escribir albanés, y que está experimentando un renacimiento moderno Antiguo uigur, una escritura histórica utilizada en Asia Central y en otros lugares para escribir los idiomas turco, chino, mongol, tibetano y árabe Tangsa, una escritura moderna utilizada para escribir el Idioma Tangsa hablado en India y Myanmar

Esto muestra que Unicode no solo es útil para la comunicación en el mundo moderno, sino que también es el Guardián que salvaguarda la memoria de culturas nicho o extintas.

Más elaborado, técnicamente un script Unicode (según Wikipedia) es:

Colección de letras y otros signos escritos que se utilizan para representar información textual en uno o más sistemas de escritura. Algunas escrituras admiten un solo sistema de escritura y un idioma, por ejemplo, el armenio.

Otros scripts admiten muchos sistemas de escritura diferentes; por ejemplo, la escritura latina admite inglés, francés, alemán, italiano, vietnamita, el propio latín y muchos otros idiomas.

En las expresiones regulares, normalmente las encontrará señaladas con p {..}, como p {Latin}, etc.

En cuanto al aspecto divertido, la v14 también agregó los siguientes 37 caracteres emoji:

Cara que se derrite Smiley con los ojos abiertos y la mano sobre la boca Smiley con los ojos abiertos Smiley saludando Smiley con la línea punteada Smiley con la boca en diagonal Cara reteniendo las lágrimas Mano a la derecha Mano a la izquierda Palma hacia abajo Mano palma hacia arriba Mano con el dedo índice y el pulgar Índice cruzado apuntando al corazón del observador Manos mordiendo el labio persona con corona
Hombre embarazada Persona embarazada Troll Coral Lotus Nido vacío Huevo Nido Frijoles Verter Líquido Olla Zona de juegos Anillo de rueda deslizante Boa Hamsa Bola de espejo Batería baja Muleta Rayos X Burbujas Tarjeta de identificación Signo de igualdad pesado

En The Programmers tenemos una amplia cobertura del mundo Emoji. Echa un vistazo al subcomité de Emoji para reabrir el proceso de envío y el Día Mundial de los Emoji elige la jeringa para resumir 2021 para lo último.

Se han introducido algunas otras adiciones menores, que incluyen:

Muchas adiciones latinas para adiciones de caracteres árabes IPA extendidas utilizadas para escribir idiomas en África e Irán, Pakistán, Malasia, Indonesia, Java y Bosnia y para escribir honoríficos y adiciones para uso coránico Adiciones de caracteres para admitir idiomas del norte de América y Filipinas, India y mongolia

Todo bien, pero para tener en tus manos los nuevos personajes, tendrás que esperar a que tus aplicaciones y fuentes favoritas se actualicen para admitir el nuevo estándar. El mismo retraso se aplica al soporte del lenguaje de programación. Perl es siempre el más rápido en adoptar los últimos estándares Unicode. Por ejemplo, el soporte Unicode 10 llegó con la versión 5.28 de Perl en 2018, mientras que Perl 5.32.0 llegó con Unicode 13. La última versión de Perl es 5.34.0, lanzada en mayo de 2021, y como tal no ha incorporado el estándar más nuevo, pero Supongo que el próximo lo hará.

¿Y qué se puede hacer con los scripts desde el punto de vista de la programación? Úselos en la manipulación de texto y en expresiones regulares. Esto se describe en Expresiones regulares de Perl avanzadas – Construcciones extendidas donde tengo un archivo:

myimage ऄ con ध Devanagari म chars फ ‘. png

en el que los caracteres hindi DEVANAGARI se mezclan con el latín. El archivo debe distribuirse en varias plataformas y sistemas operativos que pueden no ser compatibles con Unicode. Por lo tanto, su nombre de archivo debe ser portátil y compatible con los sistemas de archivos de varios sistemas operativos.

¿Cuál es la mejor manera de lograr esto? Cambiar el nombre del archivo para que solo contenga caracteres del conjunto de caracteres ASCII universalmente reconocible, lo que significa que debemos eliminarlo de todos los caracteres que no sean ASCII. Pero para hacer eso, primero debemos introducir los Bloques además de los Scripts. Según perlunicode:

Unicode también define bloques de caracteres. La diferencia entre scripts y bloques es que el concepto de scripts está más cerca de los lenguajes naturales, mientras que el concepto de bloques es más una agrupación artificial basada en grupos de caracteres Unicode con valores ordinales consecutivos. Por ejemplo, el bloque «Latín básico» consta de todos los caracteres cuyos ordinales van de 0 a 127 inclusive; en otras palabras, caracteres ASCII. La escritura «Latin» contiene algunas letras de este y muchos otros bloques, como «Latin-1 Supplement», «Latin Extended-A», etc., pero no contiene todos los caracteres de esos bloques.

Armados con este conocimiento, podemos proceder a resolver el problema de la portabilidad. Hay [[:ascii:]]Clase POSIX y / o el bloque Unicode p {InBasicLatin} que corresponden a todos los caracteres ASCII, por lo que por negación [^[:ascii:]]o P {InBasic_Latin} llegamos a todos los que no son ASCII. Como todo en Perl, TMTOWTDI (hay más de una forma de hacer esto). y este ejemplo puede ser la base para formar casos de uso más elaborados más adelante.

Pero, ¿qué queremos decir realmente con ASCII?

Nos referimos a caracteres con valores ordinales inferiores a 128 (en otras palabras, solo en inglés estadounidense), por lo que debemos eliminar los que superen los 127, lo que nos lleva a una condición «eliminar todos los caracteres cuyo valor ordinal sea> 127» para su uso en la construcción de expresiones regulares.

Para la solución, consulte el resto del artículo, pero el punto es que el estándar Unicode organiza los conceptos en bloques concretos para que pueda trabajar con ellos de manera intuitiva.

Toda la información sobre scripts, bloques y el resto se puede encontrar en la prolija documentación del estándar en Unicode.org. Y puede encontrar todas las nuevas adiciones de Emoji a Emoji recientemente agregadas.

Publicidad:

También puede gustarte...