Description
ICU is the premier library for software internationalization. ICU 51.2 is a maintenance release to ICU 51, see information below.
ICU 51.1 was a major release of ICU, with new features, new APIs and many bug fixes in data and code.
Major changes since ICU 50 include the following:
Common Changes
CLDR 23: Collation tailorings put native script first; non-Gregorian calendar formats are more consistent; much improved data for Armenian (hy), Georgian (ka), Mongolian (mn), and Welsh (cy); … [#9890, #9840, #9876, #9925]
Time zone data: 2013b
Date format/parse now supports CLDR short weekday names ("EEEEEE", "cccccc"). [#9497]
Support DisplayContext for date formatting, locale display names. [#9643]
DateTimePatternGenerator behavior is now much more consistent between C and J. [#9965 and others]
Support new timezone pattern characters in LDML spec: X+, x+, O, OOOO, V, VV, VVV. [#9867]
Updated SpoofChecker for v5 of UTS#39. [#9440]
AlphabeticIndex enhancements:
New API for CLDR script metadata. [#9538, #7016]
ICU4C Specific Changes
Support for “dangi” Korean luni-solar calendar (already in ICU4J). [#9616]
Add CompactDecimalFormat (already in ICU4J). [#9543]
Add TerritoryContainment APIs (already in ICU4J). [#8451]
UnicodeString default constructor and destructor now inline. [#9635]
Layout engine now supports 'morx' tables. [#9868]
Fixed some ICU 50 regressions:
Add ucal_getTimeZoneID. [#9735]
The C++ AlphabeticIndex implementation is now on par with Java, including full support for all Chinese collation tailorings.
U8_NEXT() and similar low-level macros now support NUL-terminated UTF-8 strings. [#9664]230
New macros like U8_NEXT_OR_FFFD() return U+FFFD for an ill-formed sequence. [#9662]
Conversion: New "good one-way" mapping type, for example for Variation Selector sequences. [#9602]
ICU4J Specific Changes
Known Issues
ICU4C:
[Fixed in 51.2] enumset.h not copied to include folder when building with Visual Studio [#10047]
[Fixed in 51.2] 2013-Apr-18: Security Vulnerabilities in the Layout Engine. [#10107] (ALL prior versions)
Applications which use fonts from untrusted sources are vulnerable to security issues.
Scope: These issues do not affect applications which don't use the ICU Layout Engine. These issues would primarily affect applications which process fonts from untrusted sources, such as webfonts.
NOTE: Applications must implement LEFontInstance::getFontTable(LETag, size_t &length) in their LEFontInstance subclasses, so that ICU can properly bounds-check font tables.
Cross Reference: The following RedHat Bug #s, CVEs, and Oracle Java bug#s are fixed by the following patch, which is synchronized with the Java 1.7 u update 21:
RH# 952656 - CVE-2013-2419 OpenJDK: font processing errors (2D, Java #8001031)
RH# 952708 - CVE-2013-2383 OpenJDK: font layout and glyph table errors (2D, Java #8004986)
RH# 952709 - CVE-2013-2384 OpenJDK: font layout and glyph table errors (2D, Java #8004987)
RH# 952711 - CVE-2013-1569 OpenJDK: font layout and glyph table errors (2D, Java #8004994)
Patch: Please download and overlay the following patches (this will replace your source/layout directory ).
Layout Patch (.TGZ)
Layout Patch (.ZIP)
MD5 hashes for Layout Patch (secure link)
HarfBuzz: users of ICU Layout are strongly encouraged to consider the HarfBuzz project as a replacement for the ICU Layout Engine. An ICU team member responsible for the Layout Engine is contributing fixes and features to HarfBuzz, and a drop in wrapper is available to allow use of HarfBuzz as a direct replacement for the ICU layout engine. See: http://www.freedesktop.org/wiki/Software/HarfBuzz
Updates in ICU 51.2
Common Locale Data Repository (CLDR) 23.1
Time zone database version 2013c
Note: See following sections for ICU4C and ICU4J specific changes. Also, see the ICU trac 51.2 milestone page for the full description of the changes.
Updates in ICU 51.3
New Japanese era Reiwa (令和) support
IANA tzdata2019a
ICU4C Download
Version: 51.3
Release Date: 2019-04-11
Source and binary downloads are available on the git/GitHub tag page: https://github.com/unicode-org/icu/releases/tag/release-51-3
Previous ICU4J 51 Releases
Version: 51.2
Release Date: 2013-05-23
ICU4C Specific Changes since 51.1 (See the ICU trac 51.2 milestone page for more details)
#9904 / #10047 fix for enumset.h not being installed on Windows
#9996 zOS pkgdata fix
#10013 Test fixes
#10030 Region enumeration fix
#10081 make stable sort faster
#10098 host failures for DateFormatTest
#10107 LayoutEngine security patches (see above)
#10120 ubrk fix for word_POSIX infinite loop
#10143 fix memory leak/crash in LayoutEngine
#10147 fix header guard typo in layout/TibetanReordering.h
Version: 51.1 (Initial Public Release of ICU4C 51)
Release Date: 2013-03-22
ICU4C Supported Platforms
Key to testing frequency
Frequently tested
ICU will work on these platforms with these compilers
Rarely tested
ICU has been ported to these platforms but may not have been tested there recently
ICU4J Download
Version: 51.3
Release Date: 2019-04-11
Source and binary downloads are available on the git/GitHub tag page: https://github.com/unicode-org/icu/releases/tag/release-51-3
Maven dependency:
<dependency>
<groupId>com.ibm.icu</groupId>
<artifactId>icu4j</artifactId>
<version>51.3</version>
</dependency>
Previous ICU4J 51 Releases
Version: 51.2
Release Date: 2013-05-23
ICU4J Specific Changes since 51.1 (See the ICU trac 51.2 milestone page for more details)
Version: 51.1 (Initial Public Release of ICU4J 51)
Release Date: 2013-03-22