ICU API notice: new property values for Unicode 18

20 views
Skip to first unread message

Markus Scherer

unread,
Jun 26, 2026, 6:30:40 PMJun 26
to icu-design

Dear ICU team & users,


This is new API for: ICU 79


Ticket: ICU-23343


Almost every Unicode release defines some new property values. ICU adds corresponding API constants which are "born @stable" (they are not @draft first for a while) so that they are immediately usable without problems.


See https://blog.unicode.org/2026/05/unicode-180-beta-review-opens-for.html and https://www.unicode.org/review/pri548/ for Unicode 18 beta.


We are adding the following property value constants:


C/C++


unicode/uchar.h


enum UBlockCode {

    // New blocks in Unicode 18.0.0


    /** @stable ICU 79 */

    UBLOCK_ARCHAIC_CUNEIFORM_NUMERALS = 347, /*[12550]*/

    /** @stable ICU 79 */

    UBLOCK_BENGALI_SUPPLEMENT = 348, /*[11DF0]*/

    /** @stable ICU 79 */

    UBLOCK_CHISOI = 349, /*[16D80]*/

    /** @stable ICU 79 */

    UBLOCK_JURCHEN = 350, /*[18E00]*/

    /** @stable ICU 79 */

    UBLOCK_JURCHEN_RADICALS = 351, /*[191A0]*/

    /** @stable ICU 79 */

    UBLOCK_MISCELLANEOUS_SYMBOLS_AND_ARROWS_EXTENDED = 352, /*[1DB00]*/

    /** @stable ICU 79 */

    UBLOCK_MUSICAL_SYMBOLS_SUPPLEMENT = 353, /*[1D250]*/

    /** @stable ICU 79 */

    UBLOCK_SEAL = 354, /*[3D000]*/


typedef enum UJoiningGroup {

    U_JG_CROWN_AIN,  /**< @stable ICU 79 */

    U_JG_CROWN_BEH,  /**< @stable ICU 79 */

    U_JG_CROWN_FEH,  /**< @stable ICU 79 */

    U_JG_CROWN_HAH,  /**< @stable ICU 79 */

    U_JG_CROWN_HEH,  /**< @stable ICU 79 */

    U_JG_CROWN_KAF,  /**< @stable ICU 79 */

    U_JG_CROWN_MEEM,  /**< @stable ICU 79 */

    U_JG_CROWN_SAD,  /**< @stable ICU 79 */

    U_JG_CROWN_SEEN,  /**< @stable ICU 79 */

    U_JG_CROWN_TAH,  /**< @stable ICU 79 */


unicode/uscript.h


typedef enum UScriptCode {

      /** @stable ICU 79 */

      USCRIPT_CHISOI                        = 213, /* Chis */

      /** @stable ICU 79 */

      USCRIPT_PROTO_CUNEIFORM               = 214, /* Pcun */

      /** @stable ICU 79 */

      USCRIPT_SEAL                          = 215, /* Seal */


Java


public final class UCharacter {

    public static final class UnicodeBlock extends Character.Subset {

       // New blocks in Unicode 18.0.0

       public static final int ARCHAIC_CUNEIFORM_NUMERALS_ID = 347; /*[12550]*/

       public static final int BENGALI_SUPPLEMENT_ID = 348; /*[11DF0]*/

       public static final int CHISOI_ID = 349; /*[16D80]*/

       public static final int JURCHEN_ID = 350; /*[18E00]*/

       public static final int JURCHEN_RADICALS_ID = 351; /*[191A0]*/

       public static final int MISCELLANEOUS_SYMBOLS_AND_ARROWS_EXTENDED_ID = 352; /*[1DB00]*/

       public static final int MUSICAL_SYMBOLS_SUPPLEMENT_ID = 353; /*[1D250]*/

       public static final int SEAL_ID = 354; /*[3D000]*/


        ...


       // New blocks in Unicode 18.0.0

       public static final UnicodeBlock ARCHAIC_CUNEIFORM_NUMERALS =

       public static final UnicodeBlock BENGALI_SUPPLEMENT =

       public static final UnicodeBlock CHISOI =

       public static final UnicodeBlock JURCHEN =

       public static final UnicodeBlock JURCHEN_RADICALS =

       public static final UnicodeBlock MISCELLANEOUS_SYMBOLS_AND_ARROWS_EXTENDED =

       public static final UnicodeBlock MUSICAL_SYMBOLS_SUPPLEMENT =

       public static final UnicodeBlock SEAL =


   public static interface JoiningGroup

       public static final int CROWN_AIN = 106;

       public static final int CROWN_BEH = 107;

       public static final int CROWN_FEH = 108;

       public static final int CROWN_HAH = 109;

       public static final int CROWN_HEH = 110;

       public static final int CROWN_KAF = 111;

       public static final int CROWN_MEEM = 112;

       public static final int CROWN_SAD = 113;

       public static final int CROWN_SEEN = 114;

       public static final int CROWN_TAH = 115;


public final class UScript {

   public static final int CHISOI = 213; /* Chis */

   public static final int PROTO_CUNEIFORM = 214; /* Pcun */

   public static final int SEAL = 215; /* Seal */


public final class VersionInfo {

   /**

    * Unicode 18.0 version

    *

    * @stable ICU 79

    */

   public static final VersionInfo UNICODE_18_0;


Sincerely,
markus

Markus Scherer

unread,
Jul 2, 2026, 11:17:04 AMJul 2
to icu-design
On Fri, Jun 26, 2026 at 3:30 PM Markus Scherer <marku...@gmail.com> wrote:

Almost every Unicode release defines some new property values. ICU adds corresponding API constants which are "born @stable" (they are not @draft first for a while) so that they are immediately usable without problems.


See https://blog.unicode.org/2026/05/unicode-180-beta-review-opens-for.html and https://www.unicode.org/review/pri548/ for Unicode 18 beta.


We are adding the following property value constants:


Update: Like in 2025, the UTC is on track to remove the Chisoi script from Unicode 18, in order to stay in sync with ISO 10646.

As a result, we will remove the API constants from ICU 79 for the Chisoi script and block.

Sincerely,
markus

Markus Scherer

unread,
Aug 12, 2026, 5:11:34 PM (4 days ago) Aug 12
to icu-design
On Thu, Jul 2, 2026 at 8:16 AM Markus Scherer <marku...@gmail.com> wrote:
On Fri, Jun 26, 2026 at 3:30 PM Markus Scherer <marku...@gmail.com> wrote:

Almost every Unicode release defines some new property values. ICU adds corresponding API constants which are "born @stable" (they are not @draft first for a while) so that they are immediately usable without problems.


See https://blog.unicode.org/2026/05/unicode-180-beta-review-opens-for.html and https://www.unicode.org/review/pri548/ for Unicode 18 beta.


We are adding the following property value constants:


Update: Like in 2025, the UTC is on track to remove the Chisoi script from Unicode 18, in order to stay in sync with ISO 10646.

The UTC has decided this:

[188-C2] Consensus: Revert approval of Chisoi script for Unicode Version 18.0 (ref. 184-C2) and set the status of the 40 code points, 16D80..16DA9, to provisionally assigned.


As a result, we will remove the API constants from ICU 79 for the Chisoi script and block.

This is done now on the ICU main branch. It should have Unicode 18 final data at this point.

markus
Reply all
Reply to author
Forward
0 new messages