Download ICU 49


ICU is the premier library for software internationalization. ICU 49 is a major release of ICU, with new features, new APIs and many bug fixes in data and code.

Note: We have changed the ICU release version numbering, combining the former first two fields into a single field. The previous major release was ICU 4.8, this release is ICU 49 (the version number of the initial public release is 49.1), and the next will be ICU 50.

Major changes in ICU 49 since ICU 4.8 include the following:

Common Changes

    • Unicode 6.1: New scripts & blocks; changes to grapheme break & line break property values; some characters change from symbol to Po or No; etc.

    • CLDR 21.0.1: Changes in segmentation data to match Unicode 6.1; new structures for support of Chinese calendar, for context-dependent capitalization, for gender of lists of people, for ordinal categories, and for multiple number systems per locale; deprecation of "commonlyUsed" element in timezone names; removal of "whole-locale" aliases; major cleanups of timezone names, delimiter data, abbreviated number data.

    • Normalizer2 API additions

      • Easier-to-use getInstance() variants; e.g., getNFDInstance() (#8246)

      • Getter for the combining-class value for a code point (#8606)

      • Getter for the raw Decomposition_Mapping (#8804)

      • Pairwise composition (#8804)

    • TimeZone class: (C++) Getter for unknown time zone, (Java) fields for GMT & unknown zone (#8779)

    • Support for deprecation of the "commonlyUsed" element for CLDR metazones (#8811)

    • DateTimePatternGenerator can now use separate patterns for skeletons that differ only in MMM vs MMMM or EEE vs EEEE, etc. (#7930)

    • Support for custom DecimalFormatSymbols in RuleBasedNumberFormat (#8940)

    • Format and parse Chinese calendar dates including support for intercalary months (#8958, #8959, #8977)

    • Context Transforms for context-dependent capitalization behavior (#9110)

    • APIs for TimeZoneNames and TimeZoneFormat (#8512, #8513)

    • Support for new date format pattern "ZZZZZ" for ISO 8601 zone format (#9045)

    • Options for ambiguous local time resolution in Calendar (#8916)

    • Support for ISO 4217 numeric currency code (#7964)

ICU4C Specific Changes

    • One platform.h file used on all platforms now (#8452)

    • Smaller binaries with static-linked ICU (#8453)

    • Explicit constructors in UnicodeString (#7877)

    • Option for not including utf headers (#8575)

    • Added function u_printf (#8579)

    • C++ namespace support (#8680)

    • DateFormat/SimpleDateFormat format/parse const methods are really const now (#8844)

    • Service Provider: link against multiple ICUs, access using just locale ID for collation and date formating services (#8157)

ICU4J Specific Changes

    • Default ULocale sensitive to user.script system property even on Java 5 & 6 (#8446)

    • TimeZone is now Freezable; getFrozenTimeZone() (#8345)

    • Add getMaxBytesForString to CharsetEncoderICU (#8515)

    • Support for Java 7 Locale Category (#8630) [Already back ported to ICU4J]

    • A new utility class MessagePatternUtil supporting MessagePattern tree structure analysis (#8745)

    • APIs for CompactDecimalFormat (#8460)

    • New Currency APIs parallel to JDK 7 java.util.Currency class (#7964)

    • CurrencyNameProvider#getDisplayName() implementation in the ICU Locale SPI provider (#9151)

    • observesDaylightTime() method in TimeZone class compatible to JDK 7 (#8513)

Known Issues

    • [ICU4C] Test failure on Power 7 AIX 7.1 due to different values returned by underlying system pow function (#9218)

    • [ICU4J] ICU4J charset module may trigger NPE on Java 7 when Java security manager is enabled. This is a bug in Java 7. (#9172)

ICU4C Download

Version: 49.1.2

Release Date: 2012-06-06

    • No API changes since ICU4C 49.1, see API Changes for changes since ICU4C 4.8

  • Readme

    • Changes between ICU4C 49.1.2 and 49.1.1

      • Full update list is in ticket: #9287

        • #9242 ICU4C fails to parse pattern containing EEE properly whilst ICU4J parses it successfully

        • #9258 Number format performance

        • #9283 uregex_open fails for look-behind assertion + case-insensitive

        • #9284 Date format roundtrip test failure

        • #9295 HPPA endianness detection

        • #9313 Problem building ICU4C with Cygwin/MSVC

        • #9332 Linux s390 endianness detection

        • #9336 Problem building ICU4C 49.1.1 on zOS

    • Changes between ICU4C 49.1 and 49.1.1

      • Full update list is in ticket: #9230

        • #7883 ICU pkgdata fails to backslash space in path on MSYS/MinGW

        • #8947 Static build failure on MSYS/MinGW

        • #9212 Data library doesn't have executable permission

        • #9217 configure test always fails due to wrong syntax

        • #9229 Version number incorrect in MSVC project files

        • #9237 ICU4C SimpleDateFormat copy constructor and assignment operator issue

        • #9241 Timezone Data update 2012c

(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

ICU4C Supported Platforms

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: 49.1 (Initial Public Release of ICU4J 49)

Release Date: 2012-03-21

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

Legal Notice: Time Zone Database