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

CharsetEncoder.canEncode(char) returns incorrect values for some Charsets

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P3 P3
    • 7
    • 2.0
    • core-libs
    • None

      CharsetEncoder.canEncode(ch) != CharsetEncoder.canEncode("" + ch) for some Charsets?

      I ran this simple test with JDK 5 and JDK 6 on Mac OSx and Windows XP,

      SortedMap<String, Charset> map = Charset.availableCharsets();
              for (Charset cs : map.values()) {
                  try {
                      CharsetEncoder encoder = cs.newEncoder();

                      char ch = '\u5185';
                      if (encoder.canEncode(ch) != encoder.canEncode("" + ch))
                          System.out.println("Encoder: " + cs.name() + " failed");
                  } catch (Exception e) {
                      //System.out.println("Encoder: " + cs.name() + " Error");
                  }
              }

      It failed
      JDK 5 (1.5.0_15) windows xp:
      Encoder: ISO-2022-KR failed
      Encoder: x-IBM1381 failed
      Encoder: x-IBM1383 failed
      Encoder: x-IBM942 failed
      Encoder: x-IBM942C failed
      Encoder: x-IBM943 failed
      Encoder: x-IBM943C failed

      JDK 6 (1.6.0_04) Windows xp:
      Encoder: x-ISO-2022-CN-CNS failed

      Mac Osx (JDK 5 1.5.0_13)
      Encoder: MacRoman failed
      Encoder: x-IBM1381 failed
      Encoder: x-IBM1383 failed
      Encoder: x-IBM942 failed
      Encoder: x-IBM942C failed
      Encoder: x-IBM943 failed
      Encoder: x-IBM943C failed

            sherman Xueming Shen
            ramap Rama Pulavarthi (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: