Vai al contenuto

[java] carattere accentato


fede089

Messaggi raccomandati

Ciao!

Ho creato il seguente file java d'esempio con xCode:

// file: Prova.java

public class Prova {
public static void main(String[] args) {
	char c = 'è';
}
}

compilo con javac Prova.java, ma mi dà i suguenti errori (i ^ non sono venuti sotto ciò che in realtà indicano):

Prova.java:3: unclosed character literal

char c = 'è';

^

Prova.java:3: illegal character: \174

char c = 'è';

^

Prova.java:3: unclosed character literal

char c = 'è';

^

3 errors

come se al posto di 'è' ci fosse 'aa'!

Sui computer dei miei amici che hanno Windows, il compilatore java lo compila senza problemi... secondo voi dov'è il problema??

versione javac: 1.6.0_17

versione OS: 10.6.2

Link al commento
Condividi su altri siti

Ad occhio solo un problema di encoding del file sorgente.

Non so come gestisca la cosa Xcode, io ti dico di Eclipse, vedi se ti aiuta...

Eclipse di base usa l'encoding in UNICODE (dato che è scritto in java). Tutto ok quando scrivo codice con eclipse, compilo con eclipse, ecc..

Se invece capita che prendo del codice da qualcuno che usa editor con encoding diverso (tipo UTF-8) allora i caratteri accentati danno problemi anche a me.

Semplicemente o prendo un programma qualsiasi che converta i formati (e converto il file .java da UTF-8 a UNICODE) oppure imposto Eclipse che faccia encoding nel formato corretto (in questo caso UTF-8) e il problema scompare.

Link al commento
Condividi su altri siti

converto il file .java da UTF-8 a UNICODE

UTF-8 è Unicode, solo che è una sua versione.

Molto più probabilmente il problema è che usa l'encoding UTF-16, che è sempre Unicode, ma usa 2 byte (16 bit) per registrare ogni carattere (al contrario dell'UTF-8 che usa 8 bit, quindi 1 byte).

Andando a settare una variabile char, che potrebbe contenere un solo byte, con 2 byte, è probabile che il compilatore dia errore.

Dovresti, come suggerito da canemacchina00, provare ad impostare la codifica su UTF-8.

Marco - Gallery

MacBook Nero 2.2 GHz Intel Core 2 Duo - 4 GB RAM - Mac OS X 10.6 Snow Leopard

Link al commento
Condividi su altri siti

Ok, è un problema di encoding del file, solo che ho visto che è Unicode (UTF-8), la codifica con cui tratta i caratteri java, ho provato con UTF-16, ma il risultato è uguale.

Funziona se NON uso Unicode, tipo Western (Mac OS Roman). Anche se da java mi sarei aspettato il contrario..

Ho provato Eclipse: molto interessante.. comunque per quanto riguarda la prova col carattere accentato ho creato un nuovo progetto, quindi una classe con il codice postato ed ha funzionato. Ho controllato la codifica del file, era Mac OS Roman. Ho provato a cambiarla con UTF-8 da dentro Eclipse, ho ri-compilato e funziona!!

Lo stesso file (UTF-8) compilato da terminale con javac da gli stessi errori descritti precedentemente.

Quando ho creato il progetto ho impostato la jvm da usare con quella di Mac OS X... come compilatore Eclipse usa il javac richiamabile da terminale o un altro che magari ha dentro il proprio "pacchetto"?

Grazie per le risposte.

Link al commento
Condividi su altri siti

  • 1 anno dopo...

Io ho un problema simile..

Mi è stato passato un progetto in Java, creato su Win, che contiene dei file con chiave pubblica e privata (RSA). SU Win tutto ok, ma se provo ad utilizzare su Osx non va.

Sono sicuro che il problema è dovutao alla codifica... come posso risolvere? :(

Link al commento
Condividi su altri siti

Archiviato

Questa discussione è archiviata e chiusa a future risposte.

×
×
  • Crea Nuovo...