IC++U(International Component for Unicode/Unicode国际化组件) 是 Unicode 支持、软件国际化、全球化的一个成熟的、广泛应用的库,是一个由 IBM 赞助、支持和使用的,基于"IBM公共许可证",用于支持软件国际化的开源项目。ICU 项目是 Unicode 联盟的技术委员会,由 IBM 和许多其他公司赞助、支持和使用。自 Windows 10 版本 1703 起,ICU 已作为 Microsoft Windows 的标准组件包含在内。
名称由来
编辑这个库为 C 和 Java 编程语言提供了一整套操作 Unicode 数据的函数。这个库是在一种无限制的开放源码许可证下发布的,这使它可以在许多应用程序中使用。ICU 提供了广泛的国际化功能,包括 Unicode 文本处理、字符属性和字符集转换、Unicode 正则表达式、字符、单词和行边界处理、区分语言的排序和搜索、规范化、大小写转换和脚本音译等。
发展历程
编辑ICU首先是由Taligent公司开发的,Taligent公司现在被合并为IBM公司全球化认证中心的Unicode研究组,然后ICU由IBM和开源组织合作继续开发,开源组织给与了ICU极大的帮助。开始ICU只有Java平台的版本,后来这个平台下的ICU类被吸纳入SUN公司开发的JDK1.1,并在JDK以后的版本中不断改进。C++和C平台下的ICU是由JAVA平台下的ICU移植过来的,移植过的版本被称为ICU4C(ICU for C),来支持这C/C++两个平台下的国际化应用。ICU 于 1999 年作为开源项目发布,名称为 IBM Unicode 类库。它后来被重新命名为 Unicode 国际组件库。2016 年 5 月,ICU 项目以技术委员会 ICU-TC 的身份加入了 Unicode 联盟,而库源现在根据 Unicode 许可证分发。
主要功能
编辑ICU 不断更新以支持最新的 Unicode 标准和区域数据。例如,ICU 73.2 针对 GB18030-2022 合规性支持进行了改进,ICU 74 更新到 Unicode 15.1,包括新字符、表情符号、安全机制以及相应的 API 和实现。ICU 项目计划于 2024 年 4 月发布的未来 ICU 75 将需要 C++17 或 C11,具体取决于所使用的语言。ICU 历史上使用 UTF-16,并且仅在 Java 中仍然使用;而对于 C/C++,则支持 UTF-8,包括正确处理“非法 UTF-8”。MessageFormatICU 的一部分是 MessageFormat 类,这是一个格式化系统,允许任意数量的参数控制复数形式(复数、选择序数)或更通用的开关-case 样式选择(选择),例如语法性别。这些语句可以嵌套。ICU MessageFormat 是通过将复数和选择系统添加到 Java SE 中的同名系统来创建的。
备选方案
编辑使用 Boost.Locale 来替代与 C++ 一起使用 ICU,或直接使用 ICU,Boost.Locale 是 ICU 的 C++ 包装器(同时还允许其他后端)。声称使用它而不是直接使用 ICU 是因为“对 C++ 开发人员绝对不友好。它忽略了流行的 C++ 惯用法(STL、RTTI、异常等),而是主要模仿 Java API。”另一个声称,即 ICU 仅支持 UTF-16(因此是避免使用 ICU 的一个原因),现在不再成立,因为 ICU 现在还为 C 和 C++ 支持 UTF-8。
百科词条作者:小小编,如若转载,请注明出处:https://glopedia.cn/349956/