Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Probleme mit Koreanisch in einer Anwendung (Java/Swing) (https://www.delphipraxis.net/200011-probleme-mit-koreanisch-einer-anwendung-java-swing.html)

Bernhard Geyer 11. Mär 2019 19:08

Probleme mit Koreanisch in einer Anwendung (Java/Swing)
 
Woran könnte es liegen das eine (in Java/Swing) erstellte Anwendung unter Windows keine Koreanischen Zeichen anzeigt, sondern nur die "typischen" Rechtecke, als würde für das Zeichen keine Glyph existieren.
Eine Delphi-Anwendung (10.2) hat damit (auf gleichen PC) kein Problem.

Beide Anwendung verwenden Segoe UI.

mjustin 11. Mär 2019 19:15

AW: Probleme mit Koreanisch in einer Anwendung (Java/Swing)
 
Werden die Zeichen z.B. mit jLabel.setText("한국말") direkt aus dem Code ausgegeben?

mjustin 11. Mär 2019 19:50

AW: Probleme mit Koreanisch in einer Anwendung (Java/Swing)
 
Malgun Gothic unterstützt Koreanische Schriftzeichen, Segoe UI aber nicht, laut Microsoft:

Zitat:

Segoe UI includes Latin, Greek, Cyrillic, and Arabic characters. There are new fonts, also optimized for ClearType, created for other character sets and uses. These include Meiryo for Japanese, Malgun Gothic for Korean, Microsoft JhengHei for Chinese (Traditional), Microsoft YaHei for Chinese (Simplified), Gisha for Hebrew, and Leelawadee for Thai, and the ClearType Collection fonts designed for document use.
Gefunden unter https://stackoverflow.com/questions/...sian-languages

Welche installierten Schriften einen String darstellen können, kann man in Java mit diesem Code ermitteln:

Code:
        String[] fonts = GraphicsEnvironment.getLocalGraphicsEnvironment().
                getAvailableFontFamilyNames();
        System.out.println(fonts.length + " font families installed");
        List<String> supportedFonts = new ArrayList<>();
        for (String fontName : fonts) {
            Font f = new Font(fontName, Font.PLAIN, 1);
            if (f.canDisplayUpTo(MY_STRING)<0) {
                System.out.println(fontName);
                supportedFonts.add(fontName);
            }
        }
       
        String[] a = supportedFonts.toArray(new String[0]);

Bernhard Geyer 11. Mär 2019 20:07

AW: Probleme mit Koreanisch in einer Anwendung (Java/Swing)
 
Chinesisch und Arabisch können dargestellt werden.
Es ist nur mit den Koreanisch verhext.

Ydobon 11. Mär 2019 20:13

AW: Probleme mit Koreanisch in einer Anwendung (Java/Swing)
 
Java hat vielleicht Probleme mit dem Fallback. Auf meinem Rechner habe ich im Moment nur 2 Schriftarten, die Koreanisch unterstützen, außer Arial Unicode noch Malgun Gothic, eventuell Windowsstandardausrüstung. Im Zweifel sollten hier welche zu finden sein: https://www.freekoreanfont.com/

Apropos: Ich habe jetzt Jahre nichts mehr mit CJK gemacht. Gibt es das nachträgliche Installieren der Sprachpakete mit Eingabeeditoren, Schriftarten usw. unter Win 10 noch?

mjustin 11. Mär 2019 20:19

AW: Probleme mit Koreanisch in einer Anwendung (Java/Swing)
 
Für Chinesisch wird bei mir nur angezeigt:

187 font families installed
Microsoft JhengHei
Microsoft JhengHei Light
Microsoft JhengHei UI
Microsoft JhengHei UI Light
Microsoft YaHei
Microsoft YaHei UI
Yu Gothic
Yu Gothic Light
Yu Gothic Medium
Yu Gothic UI
Yu Gothic UI Light
Yu Gothic UI Semibold
Yu Gothic UI Semilight

(Oracle JDK 8u201)


Code:
        final String MY_STRING = "\u2e8f";
       
        initComponents();
       
        jLabel1.setText(MY_STRING);
       
       
        String[] fonts = GraphicsEnvironment.getLocalGraphicsEnvironment().
                getAvailableFontFamilyNames();
        System.out.println(fonts.length + " font families installed");
        List<String> supportedFonts = new ArrayList<>();
        for (String fontName : fonts) {
            Font f = new Font(fontName, Font.PLAIN, 1);
            if (f.canDisplayUpTo(MY_STRING)<0) {
                System.out.println(fontName);
                supportedFonts.add(fontName);
            }
        }
       
        String[] a = supportedFonts.toArray(new String[0]);
       
        jComboBox1.setModel(new javax.swing.DefaultComboBoxModel<>(a));
Segoe UI fehlt, was auch der Microsoft-Dokumentation entspricht.

Ydobon 11. Mär 2019 20:43

AW: Probleme mit Koreanisch in einer Anwendung (Java/Swing)
 
Wenn unterstützende Schriftarten vorhanden sind, hilft vielleicht das weiter: https://docs.oracle.com/javase/8/doc...ontconfig.html

EWeiss 11. Mär 2019 22:35

AW: Probleme mit Koreanisch in einer Anwendung (Java/Swing)
 
sorry vergiss es war schon gepostet.

gruss

Bernhard Geyer 12. Mär 2019 08:13

AW: Probleme mit Koreanisch in einer Anwendung (Java/Swing)
 
Danke erstmal für die Tipps.
Werde sie intern weiterleiten damit die Kollegen erstmal Ansatzpunkte haben wo sie suchen könnten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:16 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz