Download ICU 60

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

Release Overview

ICU 60 provides full support for the recent Unicode 10.0 release with many new characters and many property improvements. Locale data is updated to CLDR 32 which adds several languages and many data improvements. A new, more user-friendly number formatting API has been added.

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 60

Version Number

The library version number of the ICU 60 maintenance release is 60.2. It includes a small number of bug fixes on top of the initial release whose library version number was 60.1.

If there are further maintenance releases, they will be 60.3, 60.4, etc. (During ICU 60 development, the library version number was 60.0.x.)

Common Changes

    • Unicode 10.0: 8,518 new characters, including four new scripts, 7,494 new Han characters, and 56 new emoji characters.

      • Properties newly supported in ICU: Emoji_Component, Regional_Indicator, Prepended_Concatenation_Mark

    • CLDR 32:

      • Data for several (mostly Asian) new languages, date formatting patterns using colloquial day period formats ("h:mm B" → “1:30 in the afternoon”), and many other data improvements.

      • See the CLDR download page for other CLDR features and migration issues in CLDR 32.

      • ICU 60.2 includes updates from CLDR 32.0.1.

    • NumberFormatter, a new number formatting API: A long-overdue refresh of number formatting in ICU with a focus on usability, robustness, and performance. The 30+ settings in DecimalFormat are reduced to 8 in NumberFormatter; all NumberFormatter objects are thread-safe and immutable; and the code is efficient in both the client-side (constant locale) and server-side (variable locale) use cases.

    • New options for titlecasing: (#9198)

      • Sentence titlecasing and whole-string titlecasing without custom BreakIterator instances.

      • The default index adjustment has been changed from "find first cased character" to "find first letter, number, or symbol"; a new option is available for selecting the previous adjustment behavior.

          • For example, with the new index adjustment, whole-string titlecasing yields '49ers' and '«丰(abc)»' instead of '49Ers' and '«丰(Abc)»'.

    • Smaller data files for BreakIterator. (#9954)

      • Reverse rules no longer used: Easier updates, easier to conform to Unicode Standard.

      • Old source rule files continue to work, reverse rules are ignored.

      • Rule-based data files: 1.2MB→0.8MB.

ICU4C Specific Changes

    • New API for direct-UTF-8 normalization. (#13197, #13271)

    • It also optionally records changes, for source-to-result index mapping and tracking of text metadata.

    • More convenient case mapping API (StringPiece→ByteSink). (#13203)

    • ICU now handles ill-formed UTF-8 byte sequences as specified in the W3C Encoding Standard. (#13311)

ICU4J Specific Changes

    • By default, CompactDecimalFormat will show all digits before the decimal separator instead of always rounding to 2 significant digits: 123000 becomes "123K" instead of "120K" (#12775)

    • Spacing is now added between letters and numbers in currency formatting according to CLDR rules (#6560)

    • Some DecimalFormat behavior changes introduced in ICU 59 were changed to mimic ICU 58 behavior; see the ticket query link for details. (Component: format_number)

    • New CaseMap convenience methods: apply(CharSequence)→String. (#13247)

ICU 60.2 bug fixes

List of tickets fixed in the ICU 60.2 maintenance release

  • CLDR 32.0.1

      • Change of some German AM/PM to English strings reverted; will be revisited.

      • BGN transliterations restored.

    • The Script_Extensions property value for 5 CJK characters is wrong. (See ticket #13462, maintenance fix r40667, see ticket comment 6 for details.)

    • ICU4J DecimalFormat

      • getGroupingSize() returns -1 instead of 0 in ICU60 if grouping is disabled (#13442)

    • setPositivePrefix also changes negative prefix (#13477)

    • unsets maxFrac when minFrac is set on a currency instance (#13492)

    • DateFormat

      • Urdu Islamic calendar eras (#13433)

    • Narrow format of noon time is used for abbreviated day period pattern letter 'b' and 'bb' (#13478)

    • Conversion buffer overflow (UTF-8 → UTF-8, #13510 = #13490)

    • Calendar buffer overrun (#13457)

    • Windows C++: The header file "stringoptions.h" is not included in the the pre-built binary .zip file download. (#13463)

    • Fix various typos and spelling mistakes. (#13436)

Known Issues

ICU4C

    • Platform Issues:

      • The new number formatting API is not available on AIX, Solaris, or z/OS (see #13393)

      • IBM z: Test failures (#13095)

      • Solaris:

        • Unicode issues with some test files (#13096) (tests are not able to build)

        • Time zone detection errors (13097)

      • Windows:

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

      • The "distrelease.ps1" script isn't part of the download .zip file. (#13147).

      • Time zone detection issues on Windows 7 with non-English UI (#13826). Fixed in the "maint-60" branch.

      • Windows using the ICC compiler:

        • Compilation issues. A work-around is known and reported to succeed. (#13190)

        • Source File Encoding. The ICC compiler does not recognize the /utf-8 option. (#13251)

    • The .zip file is larger than it needs to be. This was because the new makedata_uwp target does not build using prebuilt data. (#13126)

    • The .tgz file cannot be used to build with Cygwin/MSVC (#13139)

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

ICU4J

    • Break Iterators, problems with cloning and concurrent use. (#13512 )

ICU4C Platform Support

Updates in ICU 60.3

    • New Japanese era Reiwa (令和) support

    • IANA tzdata2019a

ICU4C Download

Latest ICU4C 60 Release

Version: 60.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-60-3

Previous ICU4C 60 Releases

Version: 60.2

Release date: 2017-12-13

(Original release: 60.1 on 2017-11-01)

ICU4J Download

Latest ICU4J 60 Release

Version: 60.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-60-3

Maven dependency:

<dependency>

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

<artifactId>icu4j</artifactId>

<version>60.3</version>

</dependency>

Previous ICU4J 60 Releases

Version: 60.2

Release date: 2017-12-13

(Original release: 60.1 on 2017-11-01)