Download ICU 62

ICU is the premier library for software internationalization, used by a wide array of companies and organizations.

Release Overview

ICU 62 upgrades to Unicode 11 and to CLDR 33.1 locale data. A locale-neutral skeleton string can be used in MessageFormat for more control over number formatting. Several still-draft NumberFormatter methods and helper classes have been modified or renamed. In C++, DecimalFormat wraps the new NumberFormatter code, and there is a new implementation for number and currency parsing.

For more details, including migration issues, see below.

Please use the icu-support mailing list and/or ICU Trac for error reports.

List of tickets fixed in ICU 62

Version Number

The initial release has library version number 62.1.

If there are maintenance releases, they will be 62.2, 62.3, etc. (During ICU 62 development, the library version number was 62.0.x.)

Note: There may be additional commits on the maint-62 branch that are not included in the prepackaged download files below.

Common Changes

    • Unicode 11: 684 new characters, including 7 new scripts, Mtavruli Georgian capital letters, 5 new Han characters, and 66 new emoji characters.

  • CLDR 33.1:

      • Unicode 11 script metadata, collation, Chinese transliteration.

      • Chinese collation stroke order updated from Unicode 7 to Unicode 11 after tooling bug fixes.

    • NumberFormatter

      • A NumberFormatter can now be constructed from a locale-neutral skeleton string (like a DateFormat) (#8610). This is particularly useful in translated messages where placeholder details should not be translated. MessageFormat recognizes the style field as a number skeleton if it is prefixed with "::", as in "Number of files: {num, number, :: round-integer group-min2}." (#13742)

      • New "conversion" functions for getting a NumberFormatter from a DecimalFormat, and a Format from a NumberFormatter.

      • New C API (unicode/unumberformatter.h. (#13597) Currently it supports formatting settings only via a skeleton string.

      • Several still-draft NumberFormatter methods and helper classes have been modified or renamed; the previous versions remain temporarily (as deprecated) for at least one release, to help with the transition.

    • Break Iterator Rules: "Safe" rules are no longer required for correct break iterator operation. For back compatibility, existing rule sets containing safe rules will continue to work, with the safe rules they contain being ignored. The Break Iterator binary data format has been updated to reflect this change.

    • Line Break: The boundary rules have been updated to reflect the Unicode 11 version of UAX #14. Specifically, the handling of Emoji ZWJ sequences has been improved. (#13770)

ICU4C Specific Changes

    • Under-the-hood overhaul of number parsing. See the design doc for a summary of changes; behavior is mostly compatible with previous versions, but there are some known differences.

  • DecimalFormat now wraps the new NumberFormatter code.

ICU4J Specific Changes

    • (none)

Known Issues

Common Issues

    • Greek case conversion (upper / lower casing) can produce incorrect results. See #13851 for details and a patch. (Note: This fix is included in the maint-62 branch).

ICU4C

    • ICU4C requires C++11 support. Some platforms (such as IBM AIX, IBM z and Solaris) may no longer be able to build ICU until an improved compiler is available. See the "ICU4C Platform Support" section below.

  • DecimalFormat & CurrencyUnit used to accept not just NULL strings for "no currency" but (as an undocumented feature) also empty strings. Ticket #13850 makes it accept empty currency code strings again.

  • Number formatting code crashes with unaligned memory access on (some?) ARM platforms. See #20001 for details and a proposed fix.

    • In DecimalFormat.getCurrencyInstance when no currency is set, strings are formatted as "XXX 1.00" instead of "¤1.00" as in previous versions. This behavior will be changed back in 63.1. See #13731 for details.

    • Cygwin unzip will not properly unpack the prebuilt Windows binaries (#20567, fixed in 64.2).

ICU4J

    • When TimeZone.TIMEZONE_JDK is set as the time zone type, time zone format for Europe/Dublin becomes incorrect ("Irish Standard Timen" and "Greenwich Mean Time" are swapped) on the latest Oracle and OpenJDK runtime (#13798).

Migration Issues

    1. The fix to insert whitespace between certain currency symbols and numbers may need "golden data" tests to be modified #6560

    2. The Unicode 11.0 changes may also require some code/tests to be fixed. Notably:

      1. Word break now groups white space together.

      2. Segmentation in general simplifies tests for emoji sequences.

      3. Casing behaves differently for Georgian, and differently for that than for any other script.

ICU4C Platform Support

  • All: Compiler support for C++11 is required for building the ICU libraries.

    • GCC: version 4.8 and later has been tested.

    • IBM AIX:

      • xlC C/C++ does not currently support a sufficient subset of C++11 (#13393)

      • gcc might work

  • macOS: XCode 8.3 (LLVM clang 8.1.0) has been tested.

  • Solaris

  • Windows:

    • The minimum supported version is Windows 7. Windows XP and Windows Vista are no longer supported.

    • Building the Visual Studio UWP projects requires Visual Studio 2017 with a version of the Windows 10 SDK installed.

      • Note: There have been reports of issues with the optimizer in Visual Studio 2017 (for example #13636). If you run into issues with VS2017 you may wish to use VS2015 as a work-around.

      • When using "@compat=host", on versions below Windows 10 version 1703, 6 locales have date and number formatting issues (#13119).

    • Windows using the ICC compiler:

      • Source File Encoding. The ICC compiler does not recognize the /utf-8 option. A work-around is known and reported to succeed. (#13251)

  • IBM z

      • xlC C/C++ does not currently support a sufficient subset of C++11 (#13393)

Updates in ICU 62.2

    • New Japanese era Reiwa (令和) support

    • IANA tzdata2019a

ICU4C Download

Latest ICU4C 62 Release

Library version number: 62.2

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-62-2

Previous ICU4C 62 Releases

Library version number: 62.1

Release date: 2018-06-20

ICU4J Download

Latest ICU4J 62 Release

Library version number: 62.2

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-62-2

Maven dependency:

<dependency>

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

<artifactId>icu4j</artifactId>

<version>62.2</version>

</dependency>

Previous ICU4J 62 Releases

Library version number: 62.1

Release date: 2018-06-20