Download ICU 51

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 thread-safe ImmutableIndex sub-API [#9880]

    • Build an index for a custom Collator. [#9842]

    • Make data-driven for Chinese collations. [#9854]

  • 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:

    • Affixes set with e.g. DecimalFormat::setPositivePrefix were ignored for parse. [#9677]

    • UNUM_PARSE_INT_ONLY no longer handled grouping separator. [#9780]

  • 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 ).

      • 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

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)

    • #10063 Proper Collection support in ListFormatter

    • #10110 ClassCastException problem in SimpleDateFormat

    • #10136 LocaleData delimiter problem

Version: 51.1 (Initial Public Release of ICU4J 51)

Release Date: 2013-03-22