Download ICU 53
Description
ICU is the premier library for software internationalization.
ICU 53 contains major improvements. Collation supports much faster UTF-8 sorting, much smaller data files, improved syntax, and many bug fixes. The latest data from CLDR is incorporated, with many fixes and improvements to locale data. Formatting has been improved significantly, such as the addition of relative times ("3 weeks ago"), and API to format the new measurement units in CLDR (1 meter vs 3 meters). For the more detailed list of features, see below.
Common Changes
Data from the CLDR 25 release: Many bug fixes
Time zone data: 2014b, including post CLDR 25 time zone data update to CLDR.
U+20BD Ruble Sign added (from Unicode 7.0, otherwise ICU 53 still uses Unicode 6.3)
MeasureFormat API for new units in CLDR 24 (ICU4J #10268, ICU4C #10640)
Hoisted setContext/getContext from SimpleDateFormat to DateFormat (#10591), implement context-sensitive capitalization of relative dates (#10553)
Added setContext/getContext methods to NumberFormat (and unum_setContext/unum_getContext for UNumberFormat), implement context-sensitive number formatting (for RBNF spellout). (#10574, #10633)
Improved lenient date parsing consistency between ICU4C and ICU4J (#10334), add finer-grained control of date parsing leniency (#10619)
Fixed numeric rounding in TimeUnitFormat (#10219, part of #10268)
Fixes to Unicode 6.3 bidirectional algorithm implementations to behave exactly like reference implementations (#10647)
Improved UTF-16 charset detection (#10532)
Collation code re-implemented
Many bugs fixed, some enhancements implemented (link for ticket query)
Passes full UCA conformance tests now
Updated to UCA 6.3/CLDR 24 root collation
Performance: string comparisons significantly faster
Collation data size (uncompressed) reduced from 4.48MB (ICU 52) to 2.62MB
More APIs function when collation rule strings have been omitted from the data files (e.g., getTailoredSet())
Java Collator.compare(Object, Object) now works with CharSequence, not just String
Java Collator base class (does not apply to RuleBasedCollator instances): getters for strength, decomposition mode, and locales return hardcoded default values; their setters do nothing
Rule syntax and semantics tightened and improved, matching LDML 25 Collation Rule Syntax
In particular, rule chains now must start with a reset.
Setting of variableTop deprecated, and not supported in rule syntax any more
Replaced by the new maxVariable setting; see LDML 25 Collation Settings
Accounting format supported in NumberFormat (#10601)
RelativeDateTimeFormatter class for formatting relative times such as "3 weeks ago" or "next Tuesday." (#8464)
Updated Spoof Checker for Unicode Security Standard version 6.3. (#10706)
ICU4C Specific Changes
Note: ICU4C now requires compilers with C99 support.
Added utrans_toRules and utrans_getSourceSet, C wrappers for Transliterator methods toRules and getSourceSet/handleGetSourceSet (#10585)
Fixed DecimalFormat::setPattern() to completely replace the previous pattern (#10468)
Fixed regex segfault when using UText based APIs and uregex_group() is called when no match results are available (#10459)
ucstrTextClone did not clear UTEXT_PROVIDER_OWNS_TEXT flag for shallow clones (#10562)
Various build fixes (use of #define U_USING_ICU_NAMESPACE 0, use of UCONFIG_NO_FORMATTING=1 and UCONFIG_NO_CONVERSION=1 on Windows, builds on Cygwin/MSVC-10 (#10486, #10500, #10617, #10505).
Technology Preview: ULI break iteration skip data, and a BreakIteratorFilterBuilder to take advantage of it (#10286)
Deprecated the USearchAttribute USEARCH_CANONICAL_MATCH; setting it to USEARCH_ON has long had no effect. (#10725)
unum_open now supports UNUM_CURRENCY_ISO and UNUM_CURRENCY_PLURAL styles. (#10676)
SimpleDateFormat format/parse now support the new 'r' pattern character for related Gregorian year (see Date Field Symbol Table). (#10637)
MeasureFormat is now a concrete class and supports formatting a variety of measure units in addition to time and currency. (#10640)
TimeUnitFormat is deprecated in favor of MeasureFormat (#10703)
ICU4J Specific Changes
Made ULocale implement Comparable (#10390)
SimpleDateFormat now supports day styles eee, eeee, eeeee, EEEEE as in ICU4C (#10239)
Fixed numeric rounding for NumberFormat and for DecimalFormat scientific notation (#10419, #10542)
Added setTimeZone/getTImeZone methods to DateIntervalFormat. (#8511)
StringSearch code re-implemented
Ported ICU4C implementation to ICU4J, replacing the previous implementation
Setter/getter for ElementComparisonType added in SearchIterator (#10735)
MeasureFormat moved out of technical preview. (#10268)
Known Issues
C: In some environments (newer clang, older gcc/libstdc++) ICU may fail to build, see #10272 for workaround.
C: DateFormat::setLenient(FALSE) won't force strict date parsing (#10816). The fix for this problem is planned to be included in the next ICU4C official release.
C: There are some issues compiling with IBM i (#10917)
C: ICU4C does not compile under Microsoft Visual Studio 2015 (#11689) (Affects all versions of ICU before 56)
Updates in ICU 53.2
New Japanese era Reiwa (令和) support
IANA tzdata2019a
ICU4C Download
Latest ICU 53 Release
Version: 53.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-53-2
Previous ICU4C 53 Releases
Version: 53.1
Release Date: 2014-04-02
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
Latest ICU 53 Release
Version: 53.2
Release Date: 2019-04-11
New Japanese era Reiwa (令和) support
IANA tzdata2019a
Source and binary downloads are available on the git/GitHub tag page: https://github.com/unicode-org/icu/releases/tag/release-53-2
Maven dependency:
<dependency>
<groupId>com.ibm.icu</groupId>
<artifactId>icu4j</artifactId>
<version>53.2</version>
</dependency>
Previous ICU4J 53 Releases
Version: 53.1/Java 8 Locale Service Provider support update
Release Date: 2015-06-10
icu4j-localespi-53_1.jar included in 53.1 release (2014-04-02) does not work well on Java 8 (it works fine on Java 6 and 7).
The version below contains the fix (svn tag: release-53-1-localespi-java8-20150610). There are no changes in ICU4J core library code. Please refer ICU Trac ticket #11733 for the details.
icu4j-localespi-53_1-20150610.jar (ICU4J locale service provider jar file)
icu4j-localespi-53_1-20150610-src.jar (ICU4J locale service provider source bundle)
Version: 53.1
Release Date: 2014-04-02