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
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
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
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)
This is similar to issues with the char16_t adoption in ICU 59.
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:
IBM AIX:
xlC C/C++ does not currently support a sufficient subset of C++11 (#13393)
gcc might work
IBM z
xlC C/C++ does not currently support a sufficient subset of C++11 (#13393)
IBM platform C++ support
IBM recently started including a build of Clang with their xlC compiler for z/OS and announced that this represents their future compiler strategy. https://developer.ibm.com/linuxonpower/2020/02/23/ibm-c-c-and-fortran-compilers-to-adopt-llvm-open-source-infrastructure.
Dignus provides an LLVM based C and C++ compilers (including cross compilers) for z/OS that support C++14 and parts of C++17. http://www.dignus.com/dcxx.
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>