Come trovare, con Java, se un certo tipo di carattere è installato correttamente su una macchina

StackOverflow https://stackoverflow.com/questions/2270360

  •  20-09-2019
  •  | 
  •  

Domanda

Ho un notebook PC con Win Vista, quando l'ho comprato, alcuni tipi di carattere cinesi non farsi vedere, ho potuto vedere solo rettangoli, ma ho giocato con l'impostazione del controllo per un po ', cambiato alcune proprietà, e ora mostra i caratteri cinesi correttamente, ma non mi ricordo quello che ho fatto.

Ora alcuni dei miei programmi visualizza sia in inglese e cinese, qualcosa di simile: "Enter | 输入" (I cinesi qui significa anche entrare), ma se un utente non ha i caratteri cinesi installati correttamente sulla sua macchina, lo farà vedere qualcosa del genere: "Enter | [] []", la mia domanda è: in Java come rilevare se questi personaggi verranno visualizzati correttamente su una determinata macchina, se non, semplicemente visualizzare "Enter", se lo è, spettacolo " Inserisci |. 输入"

Frank

È stato utile?

Soluzione

java.awt.GraphicsEnvironment.getAvailableFontFamilyNames() può dare un elenco dei caratteri disponibili installati sul sistema attuale. Si potrebbe anche usare java.awt.GraphicsEnvironment.getAllFonts() per ottenere oggetti java.awt.Font.

Quindi, è possibile utilizzare java.awt.Font.canDisplay(int) per verificare se un carattere Unicode può essere visualizzato in quel font (dove la int è la rappresentazione intera del carattere multibyte).

Altri suggerimenti

Versione pigro:

Arrays.asList(GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames()).contains(FONT_NAME)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top