Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8293658

Update Unicode Data Files to Version 15.0.0

XMLWordPrintable

    • Icon: CSR CSR
    • Resolution: Approved
    • Icon: P3 P3
    • 20
    • core-libs
    • None
    • source, behavioral
    • low
    • Unicode maintains backward compatibility, thus the risk in the JDK's adopting it would be low.
    • Java API
    • SE

      Summary

      Support the Unicode Standard version 15.0.0 in the JDK.

      Problem

      Keeping up with the latest Unicode Standard is imperative. Otherwise, interoperability with other platforms would be problematic.

      Solution

      Incorporate Unicode 15.0 which assigned 4,489 characters, 7 new blocks, and 2 new scripts since Unicode 14.0. Detailed changes are described on the Unicode Consortium's 15.0 website.

      java.text.Bidi and java.text.Normalizer classes will be upgraded to 15.0 level of Unicode Annex #9 and #15, respectively.

      Support for the Unicode extended grapheme clusters in java.util.regex.Pattern will be upgraded to 15.0 level of the Unicode Annex #29 "Unicode Text Segmentation."

      For more specific delta charts, refer to Unicode.org's delta page.

      Specification

      Change the class description in the java.lang.Character class as:

      @@ -61,11 +61,11 @@
         * This file specifies properties including name and category for every
         * assigned Unicode code point or character range. The file is available
         * from the Unicode Consortium at
         * <a href="http://www.unicode.org">http://www.unicode.org</a>.
         * <p>
      -  * Character information is based on the Unicode Standard, version 14.0.
      +  * Character information is based on the Unicode Standard, version 15.0.
         * <p>
         * The Java platform has supported different versions of the Unicode
         * Standard over time. Upgrades to newer versions of the Unicode Standard
         * occurred in the following Java releases, each indicating the new version:
         * <table class="striped">
      @@ -73,10 +73,12 @@
         * <thead>
         * <tr><th scope="col">Java release</th>
         *     <th scope="col">Unicode version</th></tr>
         * </thead>
         * <tbody>
      +  * <tr><th scope="row" style="text-align:left">Java SE 20</th>
      +  *     <td>Unicode 15.0</td></tr>
         * <tr><th scope="row" style="text-align:left">Java SE 19</th>
         *     <td>Unicode 14.0</td></tr>
         * <tr><th scope="row" style="text-align:left">Java SE 15</th>
         *     <td>Unicode 13.0</td></tr>
         * <tr><th scope="row" style="text-align:left">Java SE 13</th>

      In java.lang.Character.UnicodeBlock class, add the following new fields:

      +         /**
      +          * Constant for the "Arabic Extended-C" Unicode
      +          * character block.
      +          * @since 20
      +          */
      +         public static final UnicodeBlock ARABIC_EXTENDED_C =
      +             new UnicodeBlock("ARABIC_EXTENDED_C",
      +                              "ARABIC EXTENDED-C",
      +                              "ARABICEXTENDED-C");
      + 
      +         /**
      +          * Constant for the "Devanagari Extended-A" Unicode
      +          * character block.
      +          * @since 20
      +          */
      +         public static final UnicodeBlock DEVANAGARI_EXTENDED_A =
      +             new UnicodeBlock("DEVANAGARI_EXTENDED_A",
      +                              "DEVANAGARI EXTENDED-A",
      +                              "DEVANAGARIEXTENDED-A");
      + 
      +         /**
      +          * Constant for the "Kawi" Unicode
      +          * character block.
      +          * @since 20
      +          */
      +         public static final UnicodeBlock KAWI =
      +             new UnicodeBlock("KAWI");
      + 
      +         /**
      +          * Constant for the "Kaktovik Numerals" Unicode
      +          * character block.
      +          * @since 20
      +          */
      +         public static final UnicodeBlock KAKTOVIK_NUMERALS =
      +             new UnicodeBlock("KAKTOVIK_NUMERALS",
      +                              "KAKTOVIK NUMERALS",
      +                              "KAKTOVIKNUMERALS");
      + 
      +         /**
      +          * Constant for the "Cyrillic Extended-D" Unicode
      +          * character block.
      +          * @since 20
      +          */
      +         public static final UnicodeBlock CYRILLIC_EXTENDED_D =
      +             new UnicodeBlock("CYRILLIC_EXTENDED_D",
      +                              "CYRILLIC EXTENDED-D",
      +                              "CYRILLICEXTENDED-D");
      + 
      +         /**
      +          * Constant for the "Nag Mundari" Unicode
      +          * character block.
      +          * @since 20
      +          */
      +         public static final UnicodeBlock NAG_MUNDARI =
      +             new UnicodeBlock("NAG_MUNDARI",
      +                              "NAG MUNDARI",
      +                              "NAGMUNDARI");
      + 
      +         /**
      +          * Constant for the "CJK Unified Ideographs Extension H" Unicode
      +          * character block.
      +          * @since 20
      +          */
      +         public static final UnicodeBlock CJK_UNIFIED_IDEOGRAPHS_EXTENSION_H =
      +             new UnicodeBlock("CJK_UNIFIED_IDEOGRAPHS_EXTENSION_H",
      +                              "CJK UNIFIED IDEOGRAPHS EXTENSION H",
      +                              "CJKUNIFIEDIDEOGRAPHSEXTENSIONH");
      + 

      In java.lang.Character.UnicodeScript enum, add the following new fields:

      +         /**
      +          * Unicode script "Kawi".
      +          * @since 20
      +          */
      +         KAWI,
      + 
      +         /**
      +          * Unicode script "Nag Mundari".
      +          * @since 20
      +          */
      +         NAG_MUNDARI,

            naoto Naoto Sato
            naoto Naoto Sato
            Brian Burkhalter, Lance Andersen
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: