跳转到内容

國際統一碼部件

本页使用了标题或全文手工转换
维基百科,自由的百科全书

國際統一碼部件(英語:International Components for Unicode,縮寫:ICU,中文譯名根據聯盟官方譯名[1])是成熟的C / C++Java库的开源項目的函式庫,用於支援統一碼 、软件国际化和软件全球化。 ICU 可广泛移植到许多操作系统和环境中。對於不同平台上,以及在 C、C++ 和 Java 软件的应用程序,它可以提供相同的结果。IBM和许多其他公司赞助、支持和使用它。 [2]ICU 項目也已成為統一碼聯盟技术委员。

ICU 提供以下服务: 統一碼文本处理、完整字符属性和字符集转换; 統一碼正则表达式;完整的統一碼集;字符、单词和行边界;基於语言的定序和搜索;规范化、大小写转换和脚本音译;通過通用當地數據儲存庫(CLDR)提供全面的语言环境数据和资源包架构;多種日历时区;以及基于规则的日期、时间、数字、货币和消息的格式化和解析。 ICU過去曾為阿拉伯語、希伯來語、印度語和泰語提供複雜文字編排服务,但在第 54 版中已弃用,并在第 58 版中完全删除,取而代之的是HarfBuzz[3]

ICU 提供比 C 和 C++ 标准库更广泛的国际化设施。 ICU 67 支持Unicode 13.0并处理英國脫歐的問題。 ICU 64 支持Unicode 12.0 ,而 ICU 64.2 增加了对 Unicode 12.1 的支持,即当前日本令和时代的单一新符号(但对它的支持也已向后移植到 ICU 4.8.2 的旧 ICU 版本)。 ICU 58(支持 Unicode 9.0)是支持旧平台(如Windows XPWindows Vista )的最后一个版本。对AIXSolarisz/OS的支持在更高版本中也可能受到限制(即构建取决于编译器支持)。 [4]Windows 10版本 1703 起,ICU 已作为标准组件包含在Microsoft Windows[5]

ICU 过去一直使用UTF-16 ,但只有用於 Java;而 C/C++ 使用 UTF-8 [6],包括正确处理“非法 UTF-8”。 [7]

起源与发展

[编辑]

1996 年初,Taligent 併入 IBM 後,昇陽電腦决定新的 Java 语言应该更好地支持国际化。由于 Taligent 拥有使用此类技术的经验并且地理位置接近,因此他们的 Text 和 International 小组被要求将国际类作为JDK 1.1 国际化API 貢獻JDK[8]该代码的很大一部分仍然存在于java.text和java.util包中。 Java 的后续版本都添加了进一步的国际化功能。

然后,Java 国际化类被移植到 C++ 和 C [9],称为 ICU4C(“ICU for C”)的库的一部分。 ICU 项目还提供了 ICU4J(“ICU for Java”),它添加了标准 Java 库中不存在的功能。 ICU4C 和 ICU4J 非常相似,但并不完全相同;例如,ICU4C 包含正则表达式的 API,而 ICU4J 則沒有。随着时间的推移,这两个框架都得到了增强,以支援統一碼和通用當地數據儲存庫的新功能。

1999 年,ICU 以开源项目的方式发布,原名称为 IBM Classes for Unicode,后来更名为 International Components For Unicode。 [10] 2016 年 5 月,ICU 项目加入統一碼联盟成為其技術委員(ICU-TC),现在库源是以統一碼许可來分发。 [11]

MessageFormat

[编辑]

MessageFormat 是 ICU 中的類別,它是一个格式化系统,允许使用任意数量的参数来控制复数形式( pluralselectordinal ),或使用更一般的選擇-切換樣式(select)來處理如的語法。这些语句可以嵌套。 [12] ICU MessageFormat 是通过将复数和选择系统添加到Java SE中的同名系统而创建的。

另見

[编辑]

参考

[编辑]
  1. ^ Unicode Terminology: English - Traditional Chinese. www.unicode.org. [2021-11-17]. (原始内容存档于2021-10-10). 
  2. ^ ICU - International Components for Unicode. site.icu-project.org. [2021-11-17]. (原始内容存档于2021-08-27). 
  3. ^ Layout Engine - ICU User Guide. userguide.icu-project.org. [2021-11-17]. (原始内容存档于2021-08-28). 
  4. ^ Download ICU 64 - ICU - International Components for Unicode. site.icu-project.org. [2019-10-20]. (原始内容存档于2021-07-01). 
  5. ^ Chen, Raymond. How can I convert between IANA time zones and Windows registry-based time zones?. The Old New Thing. Microsoft. [2021-11-17]. (原始内容存档于2022-04-17). 
  6. ^ UTF-8 - ICU User Guide. userguide.icu-project.org. [2018-04-03]. (原始内容存档于2021-04-17). 
  7. ^ #13311 (change illegal-UTF-8 handling to Unicode "best practice"). bugs.icu-project.org. [2018-04-03]. (原始内容存档于2019-08-04). 
  8. ^ Laura Werner. Getting Java ready for the world: A brief history of IBM and Sun's internationalization efforts. 1999 [2021-11-17]. (原始内容存档于2021-11-17). 
  9. ^ ICU User Guide. userguide.icu-project.org. [2021-11-17]. (原始内容存档于2021-08-28). 
  10. ^ ICU Project Management Committee. [2021-11-17]. (原始内容存档于2021-08-28). 
  11. ^ ICU joins the Unicode Consortium. Unicode, Inc. 2016-05-16 [2016-08-01]. (原始内容存档于2021-11-17). 
  12. ^ Formatting Messages. ICU User Guide. [2021-11-17]. (原始内容存档于2021-08-23). 

外部链接

[编辑]
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy