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
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 users are encouraged to use the new API for number formatting. However, preexisting code can continue using the old API, which has been partially made into a wrapper over the new API.
Documentation: in Java, see com.ibm.icu.number.NumberFormatter, and in C++, see i18n/unicode/numberformatter.h.
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
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
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)
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:
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:
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
All: Compiler support for C++11 is now required for building the ICU libraries.
GCC: version 4.8 and later has been tested.
AIX: use xlC C/C++ for AIX 13.1.3 or later
macOS: XCode 8.3 ( LLVM clang 8.1.0 ) has been tested.
Solaris: use Oracle Developer Studio 12.5 or later
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 2015 Update 3 with a version of the Windows 10 SDK installed.
IBM z: use xlC C/C++ for IBM z/OS Version 2 Release 2 or later
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)
(Note that the AIX binary includes the workaround noted in #13511 )
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)