Buon pomeriggio a tutti,
ho un file c:/Prova.java
e mi istanzio un oggetto
File file = new File("c:\\Prova.java");
Qaulcuno mi saprebbe dire come posso tirare fuori l'encoding del file con cui è stato scritto?
Thanx
nh
Buon pomeriggio a tutti,
ho un file c:/Prova.java
e mi istanzio un oggetto
File file = new File("c:\\Prova.java");
Qaulcuno mi saprebbe dire come posso tirare fuori l'encoding del file con cui è stato scritto?
Thanx
nh
In linea generale e in modo completo no, non puoi. Di charset ne esistono una miriade, alcuni sono single-byte, altri multi-byte a lunghezza fissa, altri multi-byte a lunghezza variabile.Originariamente inviato da newhook
File file = new File("c:\\Prova.java");
Qaulcuno mi saprebbe dire come posso tirare fuori l'encoding del file con cui è stato scritto?
Certi charset sono tutto sommato facili da determinare, specialmente se all'inizio del file c'è il BOM (byte order mark) che però non è obbligatorio (dipende da cosa, come software, ha scritto il file). Altri no in generale, specialmente quelli single-byte (es. i vari ISO-8859-xx) possono essere confusi con altri e solo facendo analisi statistiche e/o "sapendo" cosa contiene si può empiricamente stabilire quale è.
Se non hai chiara la questione dei charset, fai un giro su:
http://en.wikipedia.org/wiki/Character_encoding
http://en.wikipedia.org/wiki/Byte-order_mark
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
thanx
nh
...ti giro la domanda...
se sto scrivendo un file, dove al suo interno scrivo un stringa in questo modo,
come posso fare a settargli un determiato encoding?codice:BufferedWriter out = new BufferedWriter(new FileWriter(mio_file)); out.write(mia_string); out.close();
nh
- FileWriter/FileReader usano sempre e solo l'encoding di "default" della piattaforma.Originariamente inviato da newhook
come posso fare a settargli un determiato encoding?codice:BufferedWriter out = new BufferedWriter(new FileWriter(mio_file)); out.write(mia_string); out.close();
- OutputStreamWriter/InputStreamReader possono ricevere un encoding esplicito nel costruttore.
Altre classi come PrintStream/PrintWriter o java.util.Formatter possono anche ricevere un encoding esplicito.
Ti basta solo guardare la documentazione javadoc.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
grazie!
/*
FileWriter/FileReader usano sempre e solo l'encoding di "default" della piattaforma.
- OutputStreamWriter/InputStreamReader possono ricevere un encoding esplicito nel costruttore.
*/
Lo schema è più chiaro![]()