Problema visualizzazione Unicode in TextArea

di il
4 risposte

Problema visualizzazione Unicode in TextArea

Buon pomeriggio a tutti.

Sto scirvendo un programmino con JavaFX nel quale è presente una TextArea che deve visualizzare vari caratteri Unicode.
Il problema sta nel fatto che non li visualizza correttamente, bensì come ?. Con dei vari
System.out.println
ho verificato il corretto funzionamento del programma, difatti nella console li riesce a visualizzare tutti correttamente.

Qualcuno che ha avuto lo stesso problema e che può aiutarmi? Grazie in anticipo!

4 Risposte

  • Re: Problema visualizzazione Unicode in TextArea

    enrico.php ha scritto:


    Sto scirvendo un programmino con JavaFX nel quale è presente una TextArea che deve visualizzare vari caratteri Unicode.
    Il problema sta nel fatto che non li visualizza correttamente, bensì come ?. Con dei vari
    System.out.println
    ho verificato il corretto funzionamento del programma, difatti nella console li riesce a visualizzare tutti correttamente.
    In generale c'è sempre una cosa da considerare quando si va a visualizzare del testo: il font di carattere utilizzato. Questo può essere rilevante specialmente se ci sono caratteri davvero particolari, di altre lingue o altro.
    Poi hai parlato di "console", non è chiaro se intendi la console di un IDE (che generalmente è "grafica") o la console di un sistema operativo, che perlomeno su Windows è notoriamente più critica/limitata riguardo l'encoding.
    E poi bisognerebbe vedere se il contenuto della stringa è corretto, cioè se a livello di char i caratteri sono rappresentati nel modo corretto.

    Per dire, es. se hai una stringa che contiene "oggi è bello" la stringa è già "sballata" a monte. Quel è in realtà sono 2 char che corrispondono singolarmente ai byte C3 e A8 che però in UTF-8 rappresentano un singolo carattere "è". Vuol dire che c'è stato un decoding sbagliato da byte a String. Questo è solo uno dei casi possibili.

    Quindi innanzitutto prova a postare qui il testo che ti mostra male o magari mostra una immagine. Altrimenti è veramente difficile capire COSA è andato storto ...
  • Re: Problema visualizzazione Unicode in TextArea

    Ciao, per console intendevo quella di un IDE. I caratteri li ho rappresentati utilizzando la loro annotazione \u0040 (esempio).

    I caratteri che la textArea avrebbe dovuto rappresentare sono caratteri dell'alfabeto runico (tipo ????), ma li rappresenta tutti con il classico simbolo con il '?' di quando non riesce a visualizzare un carattere
  • Re: Problema visualizzazione Unicode in TextArea

    enrico.php ha scritto:


    I caratteri che la textArea avrebbe dovuto rappresentare sono caratteri dell'alfabeto runico (tipo ????)
    Allora al 99,99% la questione è sul FONT di carattere. Perché un conto sono le lettere accentate o comunque tutte quelle usate dalle lingue europee (es. accenti gravi, acuti; dieresi ecc..) che non è quasi mai un problema e .... tutto un altro conto sono le lingue più strane tipo il runico. Qui il problema è principalmente proprio la presenza dei glifi nei font.

    EDIT: ho provato a fare questo:
    String s = "\u16B3\u16C1\u16A8\u16DF";
    System.out.println(s);
    JOptionPane.showMessageDialog(null, s);
    Sono i 4 caratteri che hai postato prima, scritti in escape Unicode. Sulla console di Eclipse vedo ???? mentre sul optionpane vedo ???? .
    È evidente che in questi casi NON usa un font appropriato per quei codici Unicode!

    EDIT2: però qui sul forum i 4 caratteri runici li vedo! E ho verificato, il font usato è il Segoe UI Historic. Quindi un font appropriato c'è ma non è usato ovviamente ovunque.
  • Re: Problema visualizzazione Unicode in TextArea

    andbin ha scritto:


    enrico.php ha scritto:


    I caratteri che la textArea avrebbe dovuto rappresentare sono caratteri dell'alfabeto runico (tipo ????)
    Allora al 99,99% la questione è sul FONT di carattere. Perché un conto sono le lettere accentate o comunque tutte quelle usate dalle lingue europee (es. accenti gravi, acuti; dieresi ecc..) che non è quasi mai un problema e .... tutto un altro conto sono le lingue più strane tipo il runico. Qui il problema è principalmente proprio la presenza dei glifi nei font.

    EDIT: ho provato a fare questo:
    String s = "\u16B3\u16C1\u16A8\u16DF";
    System.out.println(s);
    JOptionPane.showMessageDialog(null, s);
    Sono i 4 caratteri che hai postato prima, scritti in escape Unicode. Sulla console di Eclipse vedo ???? mentre sul optionpane vedo ???? .
    È evidente che NON ho un font appropriato per quei codici Unicode!
    Avevi ragione. Non ho fatto caso al fatto che l'unico font che riesce a visualizzare questi caratteri unicode è Segoe UI Historic.
    Infatti incollando i caratteri su un normalissimo word ho visto che in automatico cambiava il font al fine di farmeli visualizzare correttamente.

    Grazie!
Devi accedere o registrarti per scrivere nel forum
4 risposte