ICU 67

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

Release Overview

ICU 67 updates to CLDR 37 locale data with many additions and corrections. This release also includes the updates to Unicode 13, subsuming the special CLDR 36.1 and ICU 66 releases. ICU 67 includes many bug fixes for date and number formatting, including enhanced support for user preferences in the locale identifier. The LocaleMatcher code and data are improved, and number skeletons have a new ā€œconciseā€ form that can be used in MessageFormat strings.

This is the first regular release after ICU 65. ICU 66 was a low-impact release with just Unicode 13 and a few bug fixes.

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 67

Version Number

The initial release has library version number 67.1.

If there are maintenance releases, they will be 67.2, 67.3, etc. (During ICU 67 development, the library version number was 67.0.x.)

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

Common Changes

    • Unicode 13 (ICU-20893, same as in ICU 66)

    • Total of 5930 new characters

      • 4 new scripts

      • 55 new emoji characters, plus additional new sequences

      • New CJK extension, first characters in plane 3: U+30000..U+3134A

  • CLDR 37

      • New language at Modern coverage: Nigerian Pidgin

    • New languages at Basic coverage: Fulah (Adlam), Maithili, Manipuri, Santali, Sindhi (Devanagari), Sundanese

    • Region containment: EU no longer includes GB

      • Unicode 13 root collation data and Chinese data for collation and transliteration

  • DateTimePatternGenerator now obeys the "hc" preference in the locale identifier (ICU-20442)

  • Various other improvements for ECMA-402 conformance

    • Number skeletons have a new ā€œconciseā€ form that can be used in MessageFormat strings (ICU-20418)

    • Currency formatting options for formal and other currency display name variants (ICU-20854)

    • ListFormatter: new public API to select the style & type (ICU-12863)

    • ListFormatter now selects the proper ā€œandā€/ā€œorā€ form for Spanish & Hebrew (ICU-21016)

    • Locale ID canonicalization upgraded to implement the complete CLDR spec (ICU-20834, ICU-20272)

    • LocaleMatcher: New option to ignore one-way matches (ICU-20936), and other tweaks to the code (ICU-20916, ICU-20917) and data (from CLDR: CLDR-13526, CLDR-13528, CLDR-13577, CLDR-13650, CLDR-13679)

    • acceptLanguage() reimplemented via LocaleMatcher (ICU-20700)

    • Data build tool: tzdbNames.res moved from the "zone_tree" category to the "zone_supplemental" category (ICU-21073)

ICU4C Specific Changes

    • Fixed uses of u8"literals" broken by the C++20 introduction of the incompatible char8_t type (ICU-20972),

    • and added a few API overloads to reduce the need for reinterpret_cast (ICU-20984).

    • Support for manipulating CLDR 37 unit identifiers in MeasureUnit.

ICU4J Specific Changes

    • None

Known Issues

Common Issues

    • None yet.

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.

  • ICU4C has known issues compiling with GCC on AIX. These are still being investigated (ICU-3752)

  • The object returned by ICU4C DecimalFormat#toNumberFormatter might have dangling pointers to the DecimalFormat, even when copied (ICU-21134)

ICU4J

  • None yet.

Migration Issues

    1. Constructing a StringPiece from NULL may be ambiguous, depending on the platform. Where this is a problem, please adjust call sites from using NULL to using nullptr. (ICU-20984 PR #1044)

    2. This is similar to issues with the char16_t adoption in ICU 59.

    3. If you rebuild the ICU locale data from (possibly patched) CLDR data, note that there is a new CLDR-to-ICU converter tool in the ICU repo now, replacing the old one in the CLDR repo. (ICU-20693) See icu4c/source/data/cldr-icu-readme.txt

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.

  • 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.

      • 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).

    • Initialization/deinitialization order of UMutex global statics is not defined on Visual Studio 2017 and below (#21075). A work-around patch is available in PR #1110.

    • Builds using a prebuilt data file for ICU4C are broken. A fix is available in the maint/maint-67 branch (#21150).

    • 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 AIX:

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

      • gcc might work

  • IBM z

ICU4J Platform Support

ICU4J works on Java 7 and on Android API level 21.

ICU4C Download

Library version number: 67.1

Release date: 2020-04-22

Source and binary downloads are available on the git/GitHub tag page: https://github.com/unicode-org/icu/releases/tag/release-67-1

See the Source Code Access page for how to download the ICU file tree directly from GitHub.

ICU locale data was generated from CLDR tag release-37-beta3

ICU4J Download

Library version number: 67.1

Release date: 2020-04-22

Source and binary downloads are available on the git/GitHub tag page: https://github.com/unicode-org/icu/releases/tag/release-67-1

See the Source Code Access page for how to download the ICU file tree directly from GitHub.

Maven dependency:

<dependency>

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

<artifactId>icu4j</artifactId>

<version>67.1</version>

</dependency>