Downloading ICU‎ > ‎

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 data2014h
  • 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)
  • ScientificFormatHelper, scientific number formatting with common superscript notation. (#10046#10837)
  • New PluralFormat syntax (e.g. "$(ordinal,one{st}two{nd}few{rd}other{th})$") was added to RuleBasedNumberFormat. (#10880, #11064)
  • 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:

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

  • C/J: Spoof Checker not yet updated to Unicode 7.0 security data (#11262)
  • C: In some environments (newer clang, older gcc/libstdc++) ICU may fail to build, see #10272 for workaround.
  • J: With JDK 8 javadoc, the build target for API reference document generation will fail. (#10988)
  • 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)

ICU4C Download

Version: 54.1
Release Date: 2014-10-01
  • API Changes since ICU4C 53
  • Readme
  • 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.

(If the list of files does not appear above, see ICU4C Binaries.)


(If the list of files does not appear above, see ICU4C Source.)

To extract the source code, use the following command: svn export http://source.icu-project.org/repos/icu/icu/tags/release-54-1/

ICU4C Supported Platforms

Here is the status of building ICU on several different platforms.
AIX 7.1 (power, 64-bit) IBM XL C/C++ 12.1
Frequently Tested
AIX 6.1 (power, 64-bit) IBM XL C/C++ 11.1
Frequently Tested
AIX 6.1 (power, 64-bit) gcc 4.2.0
Frequently Tested
HP/UX 11iv3 (ia64, 64-bit) aCC A.06.20 Frequently Tested
MacOSX 10.6 Snow Leopard (x86, 32-bit) gcc 4.2.1 Frequently Tested
MacOSX 10.8 Mountain Lion (x86, 64-bit) gcc 4.2.1 Frequently Tested
Red Hat Enterprise Linux 6.2 (x86, 32-bit) gcc 4.4.6 Frequently Tested
Red Hat Enterprise Linux 6.2 (x86, 64-bit) gcc 4.4.6 Frequently Tested
Red Hat Enterprise Linux 6.2 (x86, 64-bit) icc 11.1 Frequently Tested
Red Hat Enterprise Linux 6.2 (power, 64-bit) gcc 4.4.6
Frequently Tested
Solaris 10 (sparc, 64-bit) Sun Studio 12.3 Frequently Tested
Solaris 10 (sparc, 64-bit) gcc 4.2.1 Frequently Tested
Solaris 11 Express (sparc, 64-bit)
Sun Studio 12.3
Frequently Tested
Solaris 11.1 (x86, 32-bit)
Sun Studio 12.3
Frequently Tested
Solaris 11.1 (x86, 32-bit)
gcc 4.5.2
Frequently Tested
Windows 7 (x86, 32-bit) MS Visual Studio 10
Frequently Tested
Windows Server 2008 (x86, 64-bit) MS Visual Studio 10
Frequently Tested
Windows Server 2008 (x86, 64-bit) MS Visual Studio 10 via Cygwin Frequently Tested
Windows Vista (x86 32-bit)
MS Visual Studio 10
Frequently Tested
Windows Vista (x86, 32-bit) gcc 4.5.2 via MinGW
Frequently Tested
Windows XP Professional (x86, 32-bit) MS Visual Studio 10
Frequently Tested
Windows XP Professional (x86, 32-bit) MS Visual Studio 9 via Cygwin
Frequently Tested
Windows XP Professional (x86, 32-bit) gcc 4.3.4 via Cygwin
Frequently Tested
SuSe Linux 7.2 (x86, 32-bit) icc 9.0 Rarely tested
z/OS 11.1 cxx Tested at Milestones
Linux (power, 64-bit, little endian)
gcc
Tested at Milestones
IBM i family (IBM i, i5/OS, OS/400) iCC Tested at Milestones
NetBSD, OpenBSD, FreeBSD gcc Rarely tested
SUSE Linux Enterprise Server 9 (PowerPC) IBM XL C/C++ 8.0 Rarely tested
QNX gcc Rarely tested
BeOS/Haiku gcc Rarely tested
SGI/IRIX MIPSpro CC Rarely tested
Tru64 (OSF) Compaq's cxx compiler Rarely tested
MP-RAS NCR MP-RAS C/C++ Compiler Rarely tested

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

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.

Version:
 54.1.1
Release Date: 2014-10-09
  • Readme
  • Changes since 54.1
    • Fixed java.lang.NoSuchMethodError problem on JRE 5 and JRE 6 (#11326)
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.

(If the list of files does not appear above, see ICU4J files.)


To extract the source code, use the following command: svn export http://source.icu-project.org/repos/icu/icu4j/tags/release-54-1-1/


Previous ICU4J 54 Releases

Version: 54.1
Release Date: 2014-10-01