Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di Ironmax
    Registrato dal
    Dec 2008
    Messaggi
    1,026

    Come accentare le lettere in java

    Buon giorno a tutti.
    C'è un problema che non riseco a risolvere.
    Quando faccio un programma in java e utilizzo la modalità console, le lettere accentate come la 'è' oppure la 'à' oppure la 'ò' ed altre e le faccio stampare a video, mi compaiono strani simboli.
    Volevo capire sè cè la possibilità di stampare a video ciò che scrivo correttamente con i dovuti accenti dal lato codice.
    es.:
    LATO CODICE : System.out.println ("Questa è una bella giornata di sole");
    LATO VIDEO CONSOLE : Questa 'strano simbolo' una bella giornata di sole
    Grazie per una cortese risposta.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Come accentare le lettere in java

    Originariamente inviato da Ironmax
    Quando faccio un programma in java e utilizzo la modalità console, le lettere accentate come la 'è' oppure la 'à' oppure la 'ò' ed altre e le faccio stampare a video, mi compaiono strani simboli.
    È una questione di "charset", set di caratteri.

    La console usa un "suo" charset, che dipende molto da come è stato configurato nel sistema operativo. Sui sistemi Windows in Italia tipicamente il charset della console è configurato con il CP850 (da console usa il comando: mode con e lo scopri subito!) e si può anche cambiare. Su un altro S.O. potrebbe essere ancora diverso (es. UTF-8).

    La questione è che da Java non c'è modo (almeno che io sappia ... se ci fosse ditemelo!) di sapere in modo "standard" e solo attraverso il framework quale è il charset della console.
    In Java è possibile conoscere (e in diversi modi) il charset di "default" della piattaforma (es. CP1252 su Windows) che però, in generale, non necessariamente centra e corrisponde con quello della console.

    Se si può usare Java 6, allora si è fortunati ... già, perché da Java 6 c'è la classe java.io.Console. Non permette di conoscere il charset ma i suoi printf()/format() e il PrintWriter che fornisce "scrivono" sulla console nel modo appropriato per il charset della console.

    C'è ancora un altro discorso sui charset, non è legato alla console ma lo dico per completezza. Anche il sorgente java che scrivi con un qualunque editor di testo è in un certo "charset" (e qui dipende appunto dall'editor). Il tool 'javac' per default legge il sorgente usando il charset di default della piattaforma ma si può indicare a javac un charset alternativo (opzione -encoding). È chiaro e ovvio che il compilatore deve poter leggere il sorgente usando lo stesso charset usato per scrivere il sorgente! Esempio: se scrivo un sorgente in UTF-8 e ci metto stringhe con lettere accentate e poi compilo con 'javac' senza specificare il charset (e il default non è UTF-8!) .... ci sono grane!


    E giusto come chicca finale: la classe java.io.Console non ha metodi per ottenere il charset della console, come già detto sopra. Però internamente ha effettivamente un campo private di tipo Charset e sfruttando la "reflection" è possibile determinare il charset. Il tutorial della Sun ne fornisce addirittura l'esempio qui, anche se l'intento, presumibilmente, era più che altro quello di mostrare i concetti sulla reflection piuttosto che fornire il modo pulito e appropriato per conoscere quella informazione!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it L'avatar di Ironmax
    Registrato dal
    Dec 2008
    Messaggi
    1,026

    Re andbin

    Grazie andbin, per il suggerimento per quanto riguarda l'editor.
    Stò utilizzando il TextPad, sono andato nella palet a sinistra in basso ho cercato 'DOS Character'
    ho cliccato due volte sul numero corrispondente al carattere che volevo inserire ed quando ho eseguito l'applicazione java è apparso il carattere che volevo accentato nel giusto modo.

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Re andbin

    Originariamente inviato da Ironmax
    Stò utilizzando il TextPad, sono andato nella palet a sinistra in basso ho cercato 'DOS Character'
    ho cliccato due volte sul numero corrispondente al carattere che volevo inserire ed quando ho eseguito l'applicazione java è apparso il carattere che volevo accentato nel giusto modo.
    No ... non è questo che intendevo. Immagino che cosa hai fatto ma .... se è quello che penso, non è il modo appropriato per risolvere la questione.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.