Navigation

Downloading ICU‎ > ‎

Download the ICU 4.8 Release

Description

ICU is the premier library for software internationalization. ICU 4.8.1.1 is a maintenance release to ICU 4.8, see information below.

ICU 4.8 was a major release of ICU, with new features, new APIs, and many bug fixes in data and code.

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

Common Changes

  • CLDR 2.0: The CLDR 2.0 release contains numerous improvements and bug fixes approved by the CLDR committee, including much additional data for many languages.
  • Explicit parent locale support in data imported from CLDR (#8031)
  • MessageFormat and related classes (choice/plural/select) have been reimplemented, with several improvements and some incompatible changes. See the detail section below.
  • Extended PluralFormat pattern syntax supports explicit-value forms and offsets. (#7858)
  • Utility APIs in PluralRules (get some/all/unique keyword values)
  • Time zone API to return a list of available canonical system time zone IDs (#8278)
  • Time zone API to return a region (#8279)
  • Collation: Full implementation & public API for script reordering
  • Dictionary-type trie (#8167)
  • GB18030-2005 update (#8274)

ICU4C Specific Changes

ICU4J Specific Changes

  • Technology Preview: APIs for region information. The new class com.ibm.icu.util.Region provides mapping across different region/territory codes and containment relationship. (#8347)
  • JDK Locale conversion to support JDK 7 new Locale fields (#8078)
  • Technology Preview: TimeZoneFormat and TimeZoneNames. New classes designed for supporting CLDR time zone display name algorithm and data through public APIs. (#8342

Known Issues

  • #8535 & #8537 (C only) Prebuilt binaries are usable on MinGW but the MinGW build is broken
  • #8571 (C only) U_HIDE_DRAFT_API does not operate on the correct set of APIs; might also affect U_HIDE_DEPRECATED_API, U_HIDE_INTERNAL_API and U_HIDE_SYSTEM_API

Details about MessageFormat Changes

Most of the changes apply to both Java and C/C++. Most changes were made under ticket #8319.

Benefits

  • In a MessageFormat pattern, an ASCII apostrophe can normally be written directly, rather than doubled or quadrupled. It now only begins quoted text when it precedes a character that requires quoting. A double ASCII apostrophe still yields a single one in format() output.
  • Sub-messages in choice/plural/select patterns are always checked for MessageFormat syntax.
  • There is a new, public parser for MessageFormat and choice/plural/select pattern strings, the class MessagePattern. It can be used in validation and translation tools, for example. The same parser is used in the message/choice/plural/select implementations.
  • Both named and numbered arguments can be used in a single pattern (with named-values APIs).
  • Details of the MessageFormat pattern syntax are widened (e.g., the identifier syntax), and are now documented in the class API docs.
  • Nested sub-messages are parsed once, during construction or applyPattern(), rather than in each format() call.
  • The MessageFormat object does not need nor create/cache Format objects for choice/plural/select arguments any more.
  • The C API now supports complex arguments (choice/plural/select) with arguments in sub-messages. (Previously, nested arguments were not parsed early enough for the format() value handling.)
  • The C API detects conflicting types for two arguments with the same number.
Achieving these benefits requires that a MessageFormat pattern is parsed fully, including nested choice/plural/select arguments and their sub-messages.

Resulting Incompatibilities

Note: The JDK-compatible apostrophe mode can be selected via MessageFormat API as well as a build-time option (see the enum ApostropheMode API doc).
  • Some patterns will fail to parse, or yield different results, because of the modified ASCII apostrophe handling.
  • Some patterns will fail to parse as stand-alone choice/plural/select patterns when their sub-messages do not contain correct MessageFormat syntax.
  • ChoiceFormat/PluralFormat/SelectFormat do not modify selected/returned sub-message strings.
    • In particular, they do not reduce ASCII apostrophes.
    • This is required so that the strings can be used in a MessageFormat without having to quadruple ASCII apostrophes.
  • MessageFormat.setFormat() and similar: (Setting of custom Format objects, ignoring the pattern argument specification)
    • toPattern() now normally returns the original pattern string, but will throw an exception if custom formats are set
  • MessageFormat.getFormat() and similar now return null for non-custom choice/plural/select arguments.
  • Java Serialization of MessageFormat is incompatible between pre-ICU-4.8 and ICU-4.8-and-above versions.
  • The C++ ChoiceFormat internal-array getters: getLimits(), getClosures(), getFormats() are now deprecated and disabled.

More Details



Updates in ICU 4.8.1 (C and J)

Note: See following sections for ICU4C and ICU4J specific changes.

ICU4C Download

Version: 4.8.1.1
Release date: 2011-10-26

  • ReadMe
  • No API changes since ICU4J 4.8, see API Changes for changes since ICU4J 4.6
  • Full update list is in ticket #8823
  • Major ICU4C specific changes in 4.8.1.1:
    • #8657, #8817 fix layout/LESwaps.h endianness test
    • #8719 Lenient Parsing behavior
    • #8777 Fixed docs with regards to Etc/Unknown
    • #8784 iSeries porting
    • #8801 fix performance regression in number parse
    • #8806 MessageFormat plural # formatting
    • #8820 cannot parse month names when month name starts with numeric character
    • #8824 read/use of uninitialized memory in RegexMatcher::MatchChunkAt()
    • #8864 tzdata2011k
Changes between ICU4C 4.8 and 4.8.1:


(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 http://source.icu-project.org/repos/icu/icu/tags/release-4-8-1/


Previous ICU4C Releases

Version: 4.8
Release Date: 2011-05-25

Release Date: 2011-07-20

ICU4C Supported Platforms



Here is the status of building ICU on several different platforms.
AIX 7.1 (power, 64-bit) VisualAge 11.1
Frequently Tested
AIX 6.1 (power, 64-bit) VisualAge 11.1
Frequently Tested
AIX 6.1 (power, 64-bit) gcc 4.2.0
Frequently Tested
HP/UX 11iv3 (ia64, 64-bit) aCC A.06.20 Frequently Tested
MacOSX 10.6 Snow Leopard (x86, 32-bit) gcc 4.2.1 Frequently Tested
MacOSX 10.6 Snow Leopard (x86, 64-bit) gcc 4.2.1 Frequently Tested
Red Hat Enterprise Linux 6 (x86, 32-bit) gcc 4.4.4 Frequently Tested
Red Hat Enterprise Linux 6 (x86, 64-bit) gcc 4.4.4 Frequently Tested
Red Hat Enterprise Linux 6 (x86, 64-bit) icc 11.1 Frequently Tested
Red Hat Enterprise Linux 6 (power, 64-bit) gcc 4.4.4
Frequently Tested
Red Hat Enterprise Linux 5.6 (x86, 32-bit) gcc 4.1.2 Frequently Tested
Solaris 10 (sparc, 64-bit) Sun Studio 12.2 Frequently Tested
Solaris 10 (sparc, 64-bit) gcc 4.2.1 Frequently Tested
Solaris 11 Express (sparc, 64-bit)
Sun Studio 12
Frequently Tested
Solaris 9 (sparc, 64-bit) Sun Studio 12 Frequently Tested
Windows 7 (x86, 32-bit) MS Visual Studio 10
Frequently Tested
Windows Server 2008 (x86, 64-bit) MS Visual Studio 10
Frequently Tested
Windows Server 2008 (x86, 64-bit) MS Visual Studio 9 via Cygwin Frequently Tested
Windows Vista (x86 32-bit)
MS Visual Studio 10
Frequently Tested
Windows Vista (x86, 32-bit) MS Visual Studio 10 via Cygwin Frequently Tested
Windows XP Professional (x86, 32-bit) MS Visual Studio 10
Frequently Tested
Windows XP Professional (x86, 32-bit) gcc 4.3.4 via Cygwin
Frequently Tested
SuSe Linux 7.2 (x86, 32-bit) icc 9.0 Rarely tested
z/OS 11.1 cxx Tested at Milestones
IBM i family (IBM i, i5/OS, OS/400) iCC Rarely tested
MinGW gcc Rarely tested
NetBSD, OpenBSD, FreeBSD gcc Rarely tested
SUSE Linux Enterprise Server 9 (PowerPC) IBM XL C/C++ 8.0 Rarely tested
QNX gcc Rarely tested
BeOS/Haiku gcc Rarely tested
SGI/IRIX MIPSpro CC Rarely tested
Tru64 (OSF) Compaq's cxx compiler Rarely tested
MP-RAS NCR MP-RAS C/C++ Compiler Rarely tested

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: 4.8.1.1
Release Date: 
2011-08-24
  • ReadMe
  • Back ported Java 7 Locale support features from the trunk
  • ICU4J 4.8.1 issues fixed in the 4.8.1.1 release:
    • #8596 GregorianCalendar.getActualMaximum(Calendar.WEEK_OF_YEAR) returns 52 when it should return 53 (r30275 r30517)
    • #8734 ICU services are failing when a certain default Locale is used on Java 7 (included in r30488)
    • #8766 Incorrect ParsePosition with pattern 'Z' (r30514 r30532)


The gadget spec URL could not be found

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

To extract the source code, use the following command: svn export http://source.icu-project.org/repos/icu/icu4j/tags/release-4-8-1-1/


Previous ICU4J 4.8 Releases


Version: 4.8.1
Release Date: 2011-07-20

Version: 4.8
Release Date: 
2011-05-25


Comments