Download ICU 58

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

Release Overview

This is the first release of ICU after the project joined the Unicode® Consortium. The license changed to the Unicode license (which is similar to the ICU 1.8.1-57 license).

This is the last ICU4C release that works on Windows XP and Windows Vista.

ICU 58 provides full support for the recent Unicode 9.0 release with 7,500 new characters and many property improvements. It covers the Unicode 9.0 emoji characters — plus the latest draft version of Emoji 4.0 — for a total of 2,444 emoji characters and sequences, including the new ZWJ sequences for gendered professions; ICU word & line breaking is updated for Emoji 4.0. ICU 58 incorporates the latest version 30 of Unicode CLDR locale data with a significant increase in data coverage.

There are a number of new APIs, including ones for measurement system unit display names (such as “acre” or “Hektar” in 80 languages), and improvements in performance and robustness. For Java, the unit tests are converted to JUnit, for easier and faster integration into test suites.

For more details, including migration issues, see below.

Please use the icu-support mailing list and/or ICU Trac for error reports.

List of tickets fixed in ICU 58

Common Changes

    • CLDR 30.0.2: For details of the many changes in CLDR, see CLDR 30. Some things to note:

      • For some combinations of numbering system (arab, arabext, latn) and/or locale (ar, fa, he), there were changes to the bidirectional control characters used with certain symbols (percent, minus, plus), and changes to number patterns (currency and/or percent, including addition of bidirectional control characters in some cases).

      • New in this release, the bidirectional controls used for such purposes include U+061C ARABIC LETTER MARK (ALM), which requires use of the bidirectional algorithm from Unicode 6.3 or later.

      • The time separator for Norwegian locales (nb, nn) was changed to be ':' throughout.

    • Unicode 9.0: Version 9.0 adds exactly 7,500 characters, for a total of 128,172 characters. These additions include six new scripts, 19 symbols for the new 4K TV standard, and 72 new emoji characters.

    • UBiDiTransform/BidiTransform API for convenient transformation of text between different Bidi layouts. (#11679)

    • MeasureFormat API for measurement unit display names. (#12029)

    • Most COUNT and LIMIT enum constants have been deprecated. (#12420)

    • SpoofChecker: Handling of "whole script confusables" has been removed from ICU, in accordance with its removal from UTS #39 Version 9.0.0 and the removal of the corresponding Unicode data file. (#12549)

    • Greek uppercasing ("el" locale ID) removes most diacritics. (#5456)

    • More robust locale data loading across ICU implementation code.

    • Reduced heap memory usage in DateTimePatternGenerator. (#11782)

ICU4C Specific Changes

ICU4J Specific Changes

    • DecimalFormat & DecimalFormatSymbols store & support String values for supplementary-character digits and strings for symbols. (#10368)

    • LocaleDisplayNames with optional no-substitute handling (null result rather than code) via DisplayContext. (#12700)

    • Unit tests are now based on JUnit 4. (#10152)

    • Filtered Break engine (Sentence Break Suppressions)

      • The code is now at parity with C, although the APIs themselves remain in the tech preview state.

      • Sentence Break Suppressions may now be chosen by opening a BreakIterator with a locale ID such as en@ss=standard (in BCP47: en-u-ss-standard ) as with C

Known Issues

    • C: There are known issues building on IBM z/OS, please see ticket #12766

    • C: There are known issues building the samples, please see ticket #12793

    • C: ucol_getKeywordValuesForLocale() and Collator::getKeywordValuesForLocale() return enumerations that are not already reset for iteration. (Regression in ICU 58, #12827 & #12814)

    • C: There are known issues building on Solaris Studio 12.5, please see ticket #12893

Migration Issues

    • Windows requires Visual Studio 2015, or else use cygwin or similar to build.

    • Number formatting may produce text using U+061C ARABIC LETTER MARK (ALM), which requires use of the bidirectional algorithm from Unicode 6.3 or later.

Updates in ICU 58.2

Common Changes

  • CLDR 30.0.3

    • Time zone database version 2016j

    • ICU SVN repository structure change. See the note on the Source Code Access page for more information.

ICU4C Fixes

    • #12815 uspoof_getSkeleton sets backwards-incompatible illegal argument exception

    • #12822 digitlist.cpp won't compile on msvc under Node.js

    • #12825 uspoof_check goes into an "infinite loop" when U+30FB is in an input string

    • #12832 GreekUpper::toUpper skips the final character on a non-terminated UTF-8 string

    • #12849 u_strToTitle returns incorrect length if destination is NULL

    • #12868 uprv_convertToPosix() Windows bug

ICU4J Fixes

    • #12869 Don't use ordinal() to define public constants

Updates in ICU 58.3

    • New Japanese era Reiwa (令和) support

    • IANA tzdata2019a

ICU4C Download

Latest ICU4C 58 Release

Version: 58.3

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-58-3

Previous ICU4C 58 Releases

Version: 58.2

Release Date: 2016-12-09

  • API Changes since ICU4C 57

      • The API change report looks large and noisy this time. Most of the changes are from the following:

        • The layout engine code was removed, resulting in a long list of Removed API.

        • C++ APIs that used const StringPiece& now pass/return StringPiece by value. All affected functions show as being Removed with their old signature and as Added with their new signature. (#12140)

        • Most COUNT and LIMIT enum constants have been deprecated. (#12420)

  • Readme

Version: 58.1

Release Date: 2016-10-21

ICU4J Download

Latest ICU4J 58 Release

Version: 58.3

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-58-3

Maven dependency:

<dependency>

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

<artifactId>icu4j</artifactId>

<version>58.3</version>

</dependency>

Previous ICU4 58 Releases

Version: 58.2

Release Date: 2016-12-09

Version: 58.1

Release Date: 2016-10-21