下载ICU 64

ICU是软件国际化首选库,由使用 广泛的公司和组织.

发布概述

ICU 64更新到Unicode 12和CLDR 35语言环境数据,并进行了许多添加和更正,以及一些新语言。ICU添加了数据过滤/子设置机制、改进的格式化API和C++LocaleBuilder。

有关包括迁移问题在内的更多详细信息,请参阅下文。

请使用 icu支持邮件列表和/或查找/提交错误报告.

ICU固定门票清单64(=64.1 + 64.2)

版本号

初始版本的库版本号为64.1。

如果有维护版本,它们将是64.2、64.3等(在ICU 64开发期间,库版本号为64.0.x)

注意:可能在 维护-64未包含在下面的预打包下载文件中的分支。

常见更改

    • Unicode 12码:554个新字符,包括4个新脚本和61个新表情符号字符。

  • CLDR第35页

      • 索马里和爪哇数据现已达到现代水平

      • Cebuano、Hausa、Igbo和Yoruba数据现已达到基本水平

      • 23个附加测量单位

      • 许多其他语言的数据添加和更正

      • ICU增加了以下语言:Cebuano

      • 此版本的ICU尚未实现CLDR 35中的Indi Grapheme Cluster改进。

      • CLDR第35.1页添加了对Reiwa期间日期格式的支持。

    • 2019年开始的日本日历新纪元:

      • CLDR 35.1和ICU 64.2:完全支持

      • CLDR 35和ICU 64(=64.1)包括可启用的测试数据。(重症监护室#12973, CLDR#10750)

        • 要启用CLDR新日文时代占位符名称,请设置环境变量(和ICU4J的Java系统属性)ICU_enable_TENTATIVE_era=true(这是在ICU 63中添加的)。

        • 增加了对Gannen年份编号的支持(使用(一个时代的第一年),在日本地区,日文日历为完整、长和中等格式。对于其他非数字格式(包含其他汉字字符的格式,如年) 除非特别重写,否则从模式骨架派生。(重症监护室#20441, CLDR编号11843, CLDR编号11819)

        • 我们计划在2019年4月更新ICU 64.2,这将以其真名添加新的日本时代。

  • ICU 64现在使用“后防”TZ数据。(最近的版本使用了带有某些覆盖的“先锋”数据。)(重症监护室-20398)

  • ICU数据筛选:ICU4C构建接受一个可选的筛选脚本,该脚本指定要构建的数据子集,并为区域设置和资源束路径提供白名单和黑名单。(重症监护病房-10923, 设计文件)

  • MessageFormat具有新的模式语法,用于通过独立于区域设置的框架而不是特定于区域设置的模式来指定日期/时间参数的样式。(重症监护室-9622)

      • 日期/时间骨架使用与数字骨架相同的“::”前缀。

      • MessageFormat模式字符串示例:“我们在{closing,date,::MMMMd}的{closind,time,:jm}关闭。”

  • 许多格式化API现在可以输出一种新类型的结果对象,即FormattedValue(Java&C++),或可转换为UFormattedValue(C)。

    • 它们将结果字符串与FieldPosition元数据的轻松迭代结合在一起。

ICU4C特定变化

    • 新的C++类LocaleBuilder,用于从子标签、关键字和扩展构建Locale。(ICU-20328型)

    • 与现有ICU4J ULocale并行。生成器类。

    • 对于C++MeasureUnit实例,现在有其他工厂方法可以按值返回单位,而不是按具有所有者的指针返回单位。(重症监护病房-20337)

    • 各种内存不足(OOM)处理问题已得到修复。(票证查询)

ICU4J特定变化

已知问题

常见问题

    • 还没有。

重症监护病房4C

    • ICU4C需要C++11支持。某些平台(如IBM AIX、IBM z和Solaris)可能无法再构建ICU,除非有改进的编译器可用。请参阅下面的“ICU4C平台支持”部分。

  • ICU4C在Cygwin 3.0.0上存在构建错误,请使用Cygvin 2.11.2的早期版本作为解决方法(重症监护病房-20435).

  • ICU4C知道在AIX上使用GCC进行编译时存在问题。这些仍在调查中(重症监护室-3752)

  • 在Windows上构建的长文件夹路径的ICU4C可能会失败。解决方法是从较短的文件夹路径构建。(ICU-20555型)

  • ICU 63中引入的ICU4C回归:为无效或缺失的区域设置创建DateTimePatternGenerator将返回“U_missing_RESOURCE_ERROR”,而不是返回根目录并发出警告。(重症监护病房-20558).

  • Windows Visual Studio内部版本上的ICU4C数据筛选已中断(重症监护病房-20658).

  • 在某些情况下,可能会无意中调用ICU4C abort()。(集成电路)重症监护病房-20680U)

重症监护病房4J

    • ICU4J 63升级到Java 7,旨在支持Android API 21级,但一些代码需要API 24级。请参见#20255年有关详细信息和修复。该修复包含在ICU 64和维护/维护-63分支。

迁移问题

    1. “”、“und”和“root”的区域设置ID处理在Java、C++和C中保持一致。特别是,locale.getLanguage()现在将为其中的每一个返回空字符串,locale(“und_In”).getName()将为“_In”以保持一致,等等。这可能需要进行一些调整。

    2. 区域设置规范化不再具有针对长期过时的特定于ICU的变体(例如“PREERO”)和区域设置ID(例如“de__PHONEBOOK”)的特殊映射。(ICU-1987年)

      1. 如果此类区域设置ID仍在使用中,最好将其更改为现代格式,例如使用货币或排序规则关键字。

    3. UnicodeString::moveFrom()、LocalPointer::move From(”)和类似的still-@draft方法已被删除。它们是在需要C++11之前添加的,但后来由于std::move()而变得多余。(重症监护室-13081)

    4. 一些数字格式化程序API在ICU 62中被重命名,为旧名称保留了@deprecated别名;这些别名现在已被删除。(重症监护室-13746)

  1. 有一个新的数据文件ulayout.icu用于Unicode文本布局属性。(这些属性已硬编码在ICU 63的库代码中。)

  2. 尽管ICU 63构建发出了警告,但ICU 64还不需要Python 3来构建其数据文件。此要求已推迟到将来的版本。

ICU4C平台支持

  • 全部:构建ICU库需要对C++11的编译器支持。

    • GCC:版本4.8和更高版本已经过测试。

    • IBM AIX:

      • xlC C/C++当前不支持足够的C++11子集(#13393)

      • gcc可能有效

  • macOS:XCode 8.3(LLVM clang 8.1.0)已经过测试。

  • Solaris公司

  • 窗户:

    • 支持的最低版本是Windows 7。不再支持Windows XP和Windows Vista。

    • 生成Visual Studio UWP项目需要 Visual Studio 2017使用的版本Windows 10软件开发工具包安装。

      • 注意:Visual Studio 2017中有关于优化器问题的报告(例如#13636). 如果您在VS2017上遇到问题,您可能希望使用VS2015作为解决方案。

      • 使用“@compat=host”时,在低于Windows 10版本1703的版本上,6个区域设置存在日期和数字格式问题(#13119).

    • 由于Windows没有ckb语言环境,LCID转换API没有往返库尔德语(ku)和中央库尔德语(ckb)(#20181).

    • 使用ICC编译器的Windows:

      • 源文件编码。ICC编译器无法识别/utf-8型选项。众所周知,工作区取得了成功。(#13251)

  • IBM z公司

      • xlC C/C++当前不支持足够的C++11子集(#13393)

ICU4J平台支持

ICU4J适用于Java 7和Android API 21级。

ICU更新64.2

    • Unicode 12.1数据集成草案

    • 从CLDR 35.1导入的更新区域设置数据

    • 支持日本新时代“Reiwa”(令和).

ICU固定门票清单64.2

ICU4C下载

库版本号:64.2

发布日期:2019-04-17

可在git/GitHub标签页上下载源代码和二进制文件:https://github.com/unicode-org/icu/releases/tag/release-64-2

请参阅源代码访问页面了解如何直接从GitHub下载ICU文件树。

从CLDR标记生成ICU区域设置数据释放-35-1

以前的ICU4C 64版本

库版本号: 64.1

发布日期:2019-03-27

ICU4J下载

库版本号:64.2

发布日期:2019-04-17

可在git/GitHub标签页上下载源代码和二进制文件:https://github.com/unicode-org/icu/releases/tag/release-64-2

请参阅源代码访问页面了解如何直接从GitHub下载ICU文件树。

Maven依赖项:

<依赖关系>

<groupId>com.ibm.icu</groupId>

<artifactId>icu4j</artifactId>

<版本>64.2

</依赖性>

以前的ICU4J 64版本

库版本号: 64.1

发布日期:2019-03-27