ICU是软件国际化首选库,由使用 广泛的公司和组织.
ICU 66更新至 Unicode 13码,包括新字符、脚本、表情符号和相应的API常量。它还更新到 第36.1条带有Unicode 13更新和错误修复。
这些新的、额外的第1季度发行版是为了让那些无法以最新版本的Unicode发布其产品的供应商进行集成。这些版本影响较小,没有其他重要的功能添加或实现更改。下一个功能版本将是CLDR 37和ICU 67,计划于2020年4月发布。
中级ICU 66预览(2019-12月)更新为Unicode 13贝塔,包括新字符、脚本、表情符号和相应的API常量。它还更新为CLDR 36.1预览版,包含Unicode 13更新和错误修复。
预览版和候选版本/最终版本之间没有API更改,也没有重大代码更改。由于测试版反馈,Unicode 13数据发生了一些变化。
有关包括迁移问题在内的更多详细信息,请参阅下文。
请使用 icu支持邮件列表和/或查找/提交错误报告.
ICU 66固定票清单
预览版的库版本号为66.0.1。
初始版本的库版本号为66.1。
如果有维护发布,它们将是66.2、66.3等。
注意:可能在 维护-66预打包下载文件中未包含的分支。
类似功能的ICU4C API宏(例如,U16_NEXT_OR_FFFD())总是与尾随分号一起使用,但有些宏没有分号就可以使用,当与一个宏一起使用时,会导致-Wextra-semistmt警告。这个问题已经解决了。请调整呼叫站点,添加缺少的分号。如果您有很多这样的调用站点,那么可以临时更改unicode/umachine.h中UPRV_BLOCK_MACRO_BEGIN和UPRV_BROCK_MACRO_END的定义(重症监护病房-20601,icu/拉动/759)
一些C++函数现在返回协变(与此相同)指针类型。(重症监护病房-20783)
在以下情况下,这可能会破坏自定义子类的定义:
您有一个ICU类的子类,它本身是定义虚拟克隆()的类的子类别。
例如:MyBreakIterator→RuleBasedBreakInterator→Break迭代器
请注意,RuleBasedBreakIterator::clone()现在返回一个指向RuleBasedBreakIterator的指针,而不是指向BreakIterator的指针。
子类(MyBreakIterator)将clone()定义为返回基类(BreakInterator)的指针。
这将不再编译,因为子类克隆返回的类型与直接父类(RuleBasedBreakIterator)中克隆所返回的类型不协变(即,宽度更大的类型)。
要解决此问题,请更改子类以返回指向直接父级(RuleBasedBreakIterator)或其自身(MyBreakIterator)的指针。
所有公共C++标头现在都假定默认上下文为extern“C++”。(重症监护病房-20530)
ICU4C同时具有C和C++标头,适用于使用C或C++编译器的调用方,或者适用于使用C++编译器且希望具有二进制兼容性的调用方。C++标头之前在假定调用方使用它们的链接上下文方面不一致。在某些情况下,C++标头可以在外部“C”上下文中工作,而在其他情况下则不能。从ICU 65开始,所有公共C++头现在都假定默认上下文为extern“C++”。
这意味着,在外部“C”块中包含C++标头的调用方需要修改其代码,以将包含的标头移动到外部“C“块之外。
所有公共C++标头都由宏“U_SHOW_CPLUSPLUS_API”保护。(重症监护病房-20578)
如果定义了“__cplusplus”,则此宏默认设置为1,但如果ICU用户希望仅使用C API(使用C++编译器),则可以在包含任何标头之前将其定义为0。
Windows上的ICU4C不再使用库DLL的固定基址。(重症监护病房-20768)
ICU4J适用于Java 7和Android API 21级。
库版本号:66.1
发布日期:2020-03-11
可在git/GitHub标签页上下载源代码和二进制文件:https://github.com/unicode-org/icu/releases/tag/release-66-1
请参阅源代码访问页面了解如何直接从GitHub下载ICU文件树。
从CLDR标记生成ICU区域设置数据释放-36-1
库版本号:66.1
发布日期:2020-03-11
git/GitHub标签页上提供了源代码和二进制下载:https://github.com/unicode-org/icu/releases/tag/release-66-1
请参阅源代码访问页面了解如何直接从GitHub下载ICU文件树。
Maven依赖项:
<依赖性>
<groupId>com.ibm.icu</groupId>
<artifactId>icu4j</artifactId>
<版本>66.1
</依赖性>