UTF-8-Zeichen anzeigen

Hallo,

ich habe eine Frage zur Anzeige von UTF-8-Zeichen.

Ich baue ein JFrame mit einer JTable auf und möchte in dieser JTable das Zeichen und den Code Point anzeigen:

        JFrame frame = new JFrame();
        TableModel myModel = new MyTableModel();
        frame.add(new JScrollPane(new JTable(myModel)));
        frame.setSize(500, 500);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }```

Im TableModel gibt es eine Liste , die alle Zeichen von 0 bis 300hex anzeigen soll. 

Gekürzt sieht das so aus: 


```public class MyTableModel implements TableModel {
    // innere Klasse "Zeichen"
    private class Zeichen {
        
        private final String GLYPH;
        private final String CP;
        
        private Zeichen(String glyph, String cp) {
            this.GLYPH = glyph;
            this.CP = cp;
        }
    }
    private final List<TableModelListener> LISTENERS = new LinkedList<>();
    private final String[] HEADERS = new String[]{"Zeichen", "Code Point"};
    private final List<Zeichen> DATA = new ArrayList<>();
    // Initialisierer
    {
        for (int i = 0; i < 0x300; i++) {
            String cp = "\\U" + i;
            char tempGlyph = (char) i;
            String glyph = Character.toString(tempGlyph);
            DATA.add(new Zeichen(glyph, cp));
        }
    }
      // ... usw. 
}```

Meine Frage ist nun: warum werden einige Zeichen "normal" angezeigt (z. B. U464), andere nur als "Kästchen"?

Ganz allgemein: Fonts sind immer kacke. :slight_smile:

Im speziellen haben nicht alle Fonts alle Zeichen (z.B. gibt es nur ganz wenige Fonts, die einen vernünftigen Satz asiatischer Zeichen abbilden können. Gerüchteweise soll es dafür sogar ganz bestimmte Fonts geben, die dafür „offiziell zugelassen“ sind). Die „Kästchen“ sind einfach Zeichen, die nicht dargestellt werden können. Theoretisch könnte man versuchen, einen Font für die entsprechende Component zu setzen ( http://docs.oracle.com/javase/tutorial/2d/text/fonts.html etc.), von dem man weiß, dass er die entsprechenden Zeichen enthält, aber… da müßte ich auch erst nach einem passenden websuchen und ein bißchen rumprobieren…

Vielen Dank, Marco!

Damit habe ich mein Problem gelöst: UniFont

So, ich habe mit UniFont eine Weile gearbeitet. Ich glaube, dass der Font nicht alle Zeichen darstellt. U01E6, U01E7 und U0201 werden - wenn ich das richtig sehe - immer noch mit Kästchen anzeigt.

Hat von euch einer Erfahrung mit UniFont?

Gibt es Alternativen dazu?

Hui, ein halbes Jahr :eek: Gibt es genauere Infos als dass ~“bestimmte Zeichen nicht angezeigt” werden? (BTW: Kürzlich war http://forum.byte-welt.net/threads/11465-Chinesische-JButtons - verwandt, zumindest, vielleicht steht ja was interessantes drin…)