src/java.base/share/classes/sun/nio/cs/HKSCS.java

Print this page




 415                 }
 416             }
 417             return dp;
 418         }
 419 
 420         static char[] C2B_UNMAPPABLE = new char[0x100];
 421         static {
 422             Arrays.fill(C2B_UNMAPPABLE, (char)UNMAPPABLE_ENCODING);
 423         }
 424 
 425         public static void initc2b(char[][] c2b, String[] b2cStr, String pua) {
 426             // init c2b/c2bSupp from b2cStr and supp
 427             int b2Min = 0x40;
 428             Arrays.fill(c2b, C2B_UNMAPPABLE);
 429             for (int b1 = 0; b1 < 0x100; b1++) {
 430                 String s = b2cStr[b1];
 431                 if (s == null)
 432                     continue;
 433                 for (int i = 0; i < s.length(); i++) {
 434                     char c = s.charAt(i);


 435                     int hi = c >> 8;
 436                     if (c2b[hi] == C2B_UNMAPPABLE) {
 437                         c2b[hi] = new char[0x100];
 438                         Arrays.fill(c2b[hi], (char)UNMAPPABLE_ENCODING);
 439                     }
 440                     c2b[hi][c & 0xff] = (char)((b1 << 8) | (i + b2Min));
 441                 }
 442             }
 443             if (pua != null) {        // add the compatibility pua entries
 444                 char c = '\ue000';    //first pua character
 445                 for (int i = 0; i < pua.length(); i++) {
 446                     char bb = pua.charAt(i);
 447                     if (bb != UNMAPPABLE_DECODING) {
 448                         int hi = c >> 8;
 449                         if (c2b[hi] == C2B_UNMAPPABLE) {
 450                             c2b[hi] = new char[0x100];
 451                             Arrays.fill(c2b[hi], (char)UNMAPPABLE_ENCODING);
 452                         }
 453                         c2b[hi][c & 0xff] = bb;
 454                     }


 415                 }
 416             }
 417             return dp;
 418         }
 419 
 420         static char[] C2B_UNMAPPABLE = new char[0x100];
 421         static {
 422             Arrays.fill(C2B_UNMAPPABLE, (char)UNMAPPABLE_ENCODING);
 423         }
 424 
 425         public static void initc2b(char[][] c2b, String[] b2cStr, String pua) {
 426             // init c2b/c2bSupp from b2cStr and supp
 427             int b2Min = 0x40;
 428             Arrays.fill(c2b, C2B_UNMAPPABLE);
 429             for (int b1 = 0; b1 < 0x100; b1++) {
 430                 String s = b2cStr[b1];
 431                 if (s == null)
 432                     continue;
 433                 for (int i = 0; i < s.length(); i++) {
 434                     char c = s.charAt(i);
 435                     if (c == UNMAPPABLE_DECODING)
 436                         continue;
 437                     int hi = c >> 8;
 438                     if (c2b[hi] == C2B_UNMAPPABLE) {
 439                         c2b[hi] = new char[0x100];
 440                         Arrays.fill(c2b[hi], (char)UNMAPPABLE_ENCODING);
 441                     }
 442                     c2b[hi][c & 0xff] = (char)((b1 << 8) | (i + b2Min));
 443                 }
 444             }
 445             if (pua != null) {        // add the compatibility pua entries
 446                 char c = '\ue000';    //first pua character
 447                 for (int i = 0; i < pua.length(); i++) {
 448                     char bb = pua.charAt(i);
 449                     if (bb != UNMAPPABLE_DECODING) {
 450                         int hi = c >> 8;
 451                         if (c2b[hi] == C2B_UNMAPPABLE) {
 452                             c2b[hi] = new char[0x100];
 453                             Arrays.fill(c2b[hi], (char)UNMAPPABLE_ENCODING);
 454                         }
 455                         c2b[hi][c & 0xff] = bb;
 456                     }