ICU API notice: new property values for Unicode 18

6 views
Skip to first unread message

Markus Scherer

unread,
Jun 26, 2026, 6:30:40 PM (6 days ago) Jun 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 AM (16 hours ago) Jul 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
Reply all
Reply to author
Forward
0 new messages