Download ICU 54
Description
ICU is the premier library for software internationalization. For general information about ICU — what it is, why it is valuable, and who uses it — see the ICU homepage.
ICU 54 is a major release of ICU, with new features, new APIs and many bug fixes in data and code. It supports the latest versions of the Unicode locale data (CLDR 26, September 2014) and Unicode Standard (Unicode 7.0, June 2014). The improvements include 72 new measurement units, Unihan radical-stroke collation moved into root, new RBNF PluralFormat syntax, dictionary-based word and line break for Burmese, support for short locale display names, compatibility support for IANA time zone data abbreviations, a tech preview of FilteredBreakIterator using ULI break data, ICU4C thread safety fixes, and the ability to build ICU4C Paragraph Layout with HarfBuzz.
Significant changes since ICU 53 include the following:
Common Changes
Unicode 7.0: Unicode 7.0 adds a total of 2,834 characters, encompassing 23 new scripts, two currency symbols (manat & ruble), many new pictographic and geometric symbols, and character additions to many existing scripts.
CLDR 26: 77 languages with 100% modern coverage, more & improved data, many more measurement units
Time zone data: 2014h
Collator.getInstance(locale) handles all collation settings locale keywords (see User Guide, #8260)
The root collator sorts Han characters in Unihan radical-stroke order, rather than in UCA implicit-weights order. Correspondingly, most of the mappings were removed from CJK collation="unihan" tailorings. (#11042)
(The ICU4C source files include the ucadata-implicithan.icu file which is smaller by some 300kB and uses Han implicit weights. It can be used by modifying the data makefile.)
Cash amount formatting. (#10344)
Units data moved to separate files for easier customization of resource data (#11092)
RelativeDateTimeFormatter supports abbreviated unit names. (#10884)
DateFormatSymbols getters and setters for yearNames and zodiacNames (from cyclicNameSets for e.g. Chinese lunar calendar). (#9385)
Fixed serious inaccuracies in islamic-umalqura date conversions. (#10695)
New constants for [U]DisplayContext permit specification of either short or long versions of locale display names. (#10968)
New dictionary-based word and line break for Burmese language (Myanmar script). (#10326)
FilteredBreakIterator, a tech preview leveraging ULI sentence break suppression data from CLDR, is available by default for both C and J. (#10990, #11029)
BCP 47 Unicode locale extension (-u- extension) key/type converter APIs (#8951)
IANA tz database abbreviation compatibility support (#10934)
Charset conversion from Unicode to a charset ignores/skips default-ignorable code points that cannot be mapped (#10551)
Added tech-preview (@internal) API for per unit formatting in MeasureFormat, such as "500 meters per minute" (#10999)
ICU4C Specific Changes
Thread safety fixes (#10295, #10767, #10803, #10805, #10865, #10908, #11051)
NFC/NFD normalization is usable again without loading any data files (#9644)
Collation data cached, using new common cache (#10802)
u_fopen variant support file names in UTF-16 (#10038)
Time zone data loading can be forced to separate files, to facilitate updates. (#10942)
Break Iteration, dictionary based breaking now works correctly with UTF-8 text. (#8550)
C++11 "override" and "final" keywords added (#10347)
Note: If your application subclasses something which the ICU team has marked as "not for subclassing", you may disable these keywords by defining CPPFLAGS=-DU_FINAL= etc when building ICU). This usage is not recommended use of ICU as the classes are not designed to be subclassed. Please file an ICU ticket if you have a concern about this feature or a specific subclass (or need additional API).
Paragraph Layout (not deprecated) can be built against HarfBuzz instead of the deprecated ICU LayoutEngine. (#11023)
Deprecations:
#10530 LayoutEngine - deprecated in favor of HarfBuzz - see the User's Guide for more information.
#10372 Collation short definition strings
ICU4J Specific Changes
More APIs taking JDK Locale (#10836)
Smaller ICU resource bundle memory footprint (#10940)
ICU4J can read ICU4C data files (single files or .dat packages) which are memory-mapped; each file can be little-endian or big-endian (but not EBCDIC) (#9661)
Set the com.ibm.icu.impl.ICUBinary.dataPath in com/ibm/icu/ICUConfig.properties or via JVM properties.
UnicodeSet: Many methods broadened to CharSequence or Iterable, new class UnicodeSetSpanner for string processing (#9131)
Provided cleaner and more accurate API for accessing weekend data for different countries. (#10560)
Added tech-preview (@internal) API for ranges of units with correct plurals, such as “1-5 kilograms”. (#10600)
Tickets Fixed
Complete list of tickets fixed in this release.
Known Issues
J: java.lang.NoSuchMethodError on JRE 5 and JRE 6 (#11326). This issue was fixed in ICU4J 54.1.1.See also the source code change for related ticket #11342 (which is not in ICU4J 54.1.1).
C: ICU4C before 56 does not compile under Microsoft Visual Studio 2015 (#11689)
Updates in ICU 54.2
New Japanese era Reiwa (令和) support
IANA tzdata2019a
ICU4C Download
Latest ICU4C 54 Release
Version: 54.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-54-2
Previous ICU4C 54 Releases
Version: 54.1
Release Date: 2014-10-01
Note: The release source files uploaded on 2014-10-1 do not contain prebuilt data. These have been replaced with source files containing prebuilt data on 2014-10-3. There are no changes in the source code.
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 Release
Version: 54.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-54-2
Maven dependency:
<dependency>
<groupId>com.ibm.icu</groupId>
<artifactId>icu4j</artifactId>
<version>54.2</version>
</dependency>
Previous ICU4J 54 Releases
Version: 54.1.1/Java 8 Locale Service Provider support update
Release Date: 2015-06-10
icu4j-localespi-54_1_1.jar included in 54.1.1 release (2014-10-09) does not work well on Java 8 (it works fine on Java 6 and 7).
The version below contains the fix (svn tag: release-54-1-1-localespi-java8-20150610). There are no changes in ICU4J core library code. Please refer ICU Trac ticket #11733 for the details.
icu4j-localespi-54_1_1-20150610.jar (ICU4J locale service provider jar file)
icu4j-localespi-54_1_1-20150610-src.jar (ICU4J locale service provider source bundle)
Version: 54.1.1
Release Date: 2014-10-09
Note: This update only includes some build script changes and updated binaries built with proper configuration supporting Java 5 and Java 6 runtime evironment. ICU4J users already downloaded the previous version (54.1) running ICU4J on JRE 7 and JRE 8 do not need this update.
Version: 54.1
Release Date: 2014-10-01