Download ICU 63

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

Release Overview

ICU 63 updates to CLDR 34 locale data with many additions and corrections, and some new languages. ICU adds API for number and currency range formatting, and API for additional Unicode properties and for constructing custom properties. CLDR and ICU include data for testing readiness for the upcoming Japanese calendar era.

For more details, including migration issues, see below.

Please use the icu-support mailing list and/or find/submit error reports.

List of tickets fixed in ICU 63

Version Number

The initial release has library version number 63.1.

If there are maintenance releases, they will be 63.2, 63.3, etc. (During ICU 63 development, the library version number was 63.0.x.)

Note: There may be additional commits on the maint-63 branch that are not included in the prepackaged download files below.

Common Changes

  • CLDR 34

      • Segmentation rules and emoji sort order adjusted for Unicode 11

      • Somali and Javanese data now up to moderate level (document content)

      • Tongan, Konkani, Maori, Dzongkha, Tatar, Kurdish (ku), and Xhosa data now up to basic level

      • Many data additions and corrections in many other languages

      • The following languages have been added to ICU: Sindhi, Maori, Turkmen, Javanese, Interlingua, Kurdish (ku), Xhosa

    • New currency: Venezuela's Bolívar Soberano (VES)

    • New Japanese calendar era from 2019: CLDR and ICU include data for testing that can be enabled. (ICU #12973, CLDR #10750)

      • To enable CLDR new Japanese era placeholder name, set environment variable (and Java system property for ICU4J) ICU_ENABLE_TENTATIVE_ERA=true.

    • New API for number and currency range formatting (class NumberRangeFormatter, #11276)

    • Support for additional Unicode properties: Indic_Positional_Category & Indic_Syllabic_Category (#8966) and Vertical_Orientation (#12850)

    • New API for code point maps and tries, mapping Unicode code points (U+0000..U+10FFFF) to integer values. (#13530)

      • Java classes CodePointMap, CodePointTrie, MutableCodePointTrie

      • C types UCPMap, UCPTrie, UMutableCPTrie

    • New API for getting a UnicodeSet per binary property and a code point map per enumerated/int-value property. (#20086)

    • Full conformance with UAX #14 Line Breaking (required BreakIterator feature work). (#7270)

ICU4C Specific Changes

    • C++ Locale class

      • Additional functions forLanguageTag()/toLanguageTag(), and functions that are easier and safer to use by using StringPiece and ByteSink rather than raw buffers. (#13417)

      • Move semantics. (#13645)

    • ICU4C: Various Out-Of-Memory (OOM) issues have been fixed. (ticket query)

    • The icu-config tool has been deprecated. You can use the --disable-icu-config option to disable icu-config from being installed. Alternately, you can use --enable-icu-config to enable icu-config. In the future, icu-config will be disabled by default. (#62845)

ICU4J Specific Changes

    • Requires Java 7, up from Java 6. (#13413)

Known Issues

Common Issues

    • NaN parse failures with currency formatter (#20211)

    • UnicodeSet("[:intprop=value:]") performance regression when using a property for the first time. See #20250 for details & fix.

ICU4C

    • ICU4C requires C++11 support. Some platforms (such as IBM AIX, IBM z and Solaris) may no longer be able to build ICU until an improved compiler is available. See the "ICU4C Platform Support" section below.

  • Build failure with Cygwin: Explicit template instantiation needs to be inside the namespace. (#20214).

  • ICU4C regression: Creating a DateTimePatternGenerator for an invalid or missing locale will return "U_MISSING_RESOURCE_ERROR" instead of falling back to root with a warning. (ICU-20558).

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

ICU4J

    • ICU4J 63 upgraded to Java 7 and was intended to also support Android API level 21, but some code required API level 24. See #20255 for details & fix.

    • When TimeZone.TIMEZONE_JDK is set as the time zone type, time zone format for Europe/Dublin becomes incorrect ("Irish Standard Timen" and "Greenwich Mean Time" are swapped) on the latest Oracle and OpenJDK runtime (#13798).

Migration Issues

    1. The recent Unicode 11.0 changes may require some code/tests to be fixed. Notably:

      1. Word break now groups white space together.

      2. Segmentation in general simplifies tests for emoji sequences.

      3. Casing behaves differently for Georgian, and differently for that than for any other script.

    2. The French grouping separator changed from no-break space U+00A0 to narrow no-break space U+202F.

    3. The C/C++ code for ListFormatter has been moved up from the common library to the i18n library, so that it can additionally output FieldPosition information. If your application is using this API but not already linking with the i18n library, you will need to add that to its linker input set. (Related to #13754)

    4. Warning for Python 3: ICU 64 will require Python 3 for data build. The warning will become an error in ICU 64.

ICU4C Platform Support

  • All: Compiler support for C++11 is required for building the ICU libraries.

    • GCC: version 4.8 and later has been tested.

    • IBM AIX:

      • xlC C/C++ does not currently support a sufficient subset of C++11 (#13393)

      • gcc might work

  • macOS: XCode 8.3 (LLVM clang 8.1.0) has been tested.

  • Solaris

  • 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 2017 with a version of the Windows 10 SDK installed.

      • Note: There have been reports of issues with the optimizer in Visual Studio 2017 (for example #13636). If you run into issues with VS2017 you may wish to use VS2015 as a work-around.

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

    • The LCID conversion APIs don't round-trip Kurdish (ku) and Central Kurdish (ckb) due to Windows not having a ckb locale (#20181).

    • Windows using the ICC compiler:

      • Source File Encoding. The ICC compiler does not recognize the /utf-8 option. A work-around is known and reported to succeed. (#13251)

  • IBM z

      • xlC C/C++ does not currently support a sufficient subset of C++11 (#13393)

Updates in ICU 63.2

    • New Japanese era Reiwa (令和) support

    • IANA tzdata2019a

ICU4C Download

Latest ICU4C 63 Release

Library version number: 63.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-63-2

Previous ICU4C 63 Releases

Library version number: 63.1

Release date: 2018-10-15

ICU4J Download

Latest ICU4J 63 Release

Library version number: 63.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-63-2

Maven dependency:

<dependency>

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

<artifactId>icu4j</artifactId>

<version>63.2</version>

</dependency>

Previous ICU4J 63 Releases

Library version number: 63.1

Release date: 2018-10-15