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

Bugs in sun.awt.X11Dingbats charset class

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Fix
    • Icon: P5 P5
    • None
    • 1.4.0
    • client-libs
    • None

      The converter class sun.awt.motif.CharToByteX11Dingbats has numerous problems.

      It maps some characters which don't have mappings and fails to
      map some that do have mappings in the X11 and Postscript Dingbats fonts.

      Specifically :

      - it assumes everything in the range 0x2701 -> 0x275e is a
      valid unicode codepoint that maps into dingbats.

      Well that's wrong. The unicode manual shows there's no mapping for
      2705, 270a, 270b, 2728, 274c, 274e, 2753, 2754, 2755, 2757.

      - The unicode subrange "dingbats" extends from 0x2700->0x27bf
      The implementation has a table which is filled with zeros (meaning no
      mapping) for all characters in the rang 0x27
      when in fact all but one of those has a unicode->dingbats mapping
      according to Adobe specs for the ITC Zapf Dingbats (zapfdingbats-old.txt
      on the adobe website).

      - the same adobe spec also points out numerous unicode characters
      that are not in the unicode dingbats subrange but are elsewhere
      in unicode as well as being in Zapf Dingbats.
      For example (this is illustrative, not exhaustive).

      25;260E;a4;BLACK TELEPHONE
      2A;261B;a11;BLACK RIGHT POINTING INDEX
      2B;261E;a12;WHITE RIGHT POINTING INDEX
      48;2605;a35;BLACK STAR
      6C;25CF;a71;BLACK CIRCLE
      6E;25A0;a73;BLACK SQUARE
      AC;2460;a120;CIRCLED DIGIT ONE
      AD;2461;a121;CIRCLED DIGIT TWO
      AE;2462;a122;CIRCLED DIGIT THREE
      AF;2463;a123;CIRCLED DIGIT FOUR
      B0;2464;a124;CIRCLED DIGIT FIVE
      B1;2465;a125;CIRCLED DIGIT SIX
      B2;2466;a126;CIRCLED DIGIT SEVEN
      B3;2467;a127;CIRCLED DIGIT EIGHT
      B4;2468;a128;CIRCLED DIGIT NINE
      B5;2469;a129;CIRCLED NUMBER TEN

      the first value is the dingbats encoding value, the 2nd the unicode code
      point.
      If the purpose of CharToByteX11Dingbats is to be able to convert all
      unicode characters that have a dingbats encoding then this shows it
      falling short.

      This is not likely to be worth fixing until such time as the class
      is rewritten to the nio charset api.
      ###@###.### 10/12/04 20:27 GMT

            okutsu Masayoshi Okutsu
            prr Philip Race
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: