International Components for Unicode | ||
---|---|---|
Información general | ||
Tipo de programa | biblioteca de software | |
Desarrollador | IBM and many other companies. | |
Lanzamiento inicial | 1996 | |
Licencia | Unicode License | |
Información técnica | ||
Programado en | ||
Versiones | ||
Última versión estable | 77.113 de marzo de 2025 | |
Enlaces | ||
International Components for Unicode («Componentes Internacionales para Unicode», abreviadoICU) es un proyecto de código abierto deC/C++ yJava paraUnicode, que busca lainternacionalización y globalización del software. ICU es fácilmente aplicable a distintos sistemas operativos y entornos. Su resultado es el mismo en todas las plataformas y en softwares de C, C++ y Java. El proyecto de ICU está patrocinado, apoyado y empleado porIBM y muchas otras compañías.[1]
ICU proporciona los siguientes servicios: controlUnicode del texto, una amplia gama de propiedades y conversiones decodificación de caracteres;expresiones regulares Unicode; amplitud de conjuntos Unicode; caracteres, palabras y fronteras de línea; búsqueda y orden de idiomas; conversión de mayúsculas y minúsculas mediante corrección ortográfica y script detransliteración;configuración regional y packs de recursos mediante CLDR; multicalendario yhusos horarios; y reglas basadas en formato y gramática de fechas, tiempo, números, monedas, y mensajes. ICU presentó alguna complicación con idiomas como árabe, hebreo, indoario y tailandés en sus orígenes, pero aquello se detectó en su versión 54 y se solucionó completamente en la versión 58 gracias aHarfBuzz.[2]
ICU proporciona una internacionalización más extensa que las bibliotecas estándar de C y C++. ICU 62 es compatible con Unicode 11.0 y las versiones más viejas conUnicode 10.0, pero no con plataformas más viejas comoWindows XP,Windows Vista,AIX,Solaris o z/OS.
ICU comenzó utilizandoUTF-16 y hoy en día solo lo hace para Java; mientras que con C/C++ se usaUTF-8, incluyendo el correcto manejando de "ilegal UTF-8".[3][4]
Después de queTaligent formase parte deIBM a comienzos de 1996,Sun Microsystems decidió que el lenguaje de Java tendría que tener una mayor compatibilidad para lograr su internacionalización. Ya que Taligent tenía experiencia con dicha tecnología y se encontraba cerca geográficamente, se les propuso contribuir con las clases internacionales deJava Development Kit como parte de la internacionalización deAPIsJDK 1.1.[5] Una gran parte de este código aun existe en los paquetesjava.text yjava.util. Con cada liberación se añadieron más características de internacionalización de Java.
Las clases de internacionalización Java se llevaron a C++ y C bajo una librería con el nombre ICU4C ("ICU para C").[6] El proyecto de ICU también proporciona ICU4J ("ICU para Java"), el cual añade características no incluidas en las librerías estándar de Java. ICU4C e ICU4J son muy similares, pero no idénticos; por ejemplo, ICU4C incluye una expresión regular API, mientras ICU4J no. Ambos marcos de trabajo han sido realzados con el fin de soportar nuevas instalaciones y características de Unicode y CLDR.
ICU estuvo accesible como un proyecto de código abierto en 1999 bajo el nombre de IBM Classes para Unicode. Más tarde rebautizado aInternational Components for Unicode, conservando su acrónimo.[7] En mayo de 2016, el proyecto de ICU entró en el consorcio de Unicode como comité técnico ICU-TC y ahora todo se distribuye bajo la licencia de Unicode.[8]