Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    347

    [JAVA] Encoding di un File

    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

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

    Re: [JAVA] Encoding di un File

    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?
    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.
    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.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    347
    thanx
    nh

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    347
    ...ti giro la domanda...

    se sto scrivendo un file, dove al suo interno scrivo un stringa in questo modo,

    codice:
    BufferedWriter out = new BufferedWriter(new FileWriter(mio_file));
    out.write(mia_string);
    out.close();
    come posso fare a settargli un determiato encoding?

    nh

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da newhook
    codice:
    BufferedWriter out = new BufferedWriter(new FileWriter(mio_file));
    out.write(mia_string);
    out.close();
    come posso fare a settargli un determiato encoding?
    - FileWriter/FileReader usano sempre e solo l'encoding di "default" della piattaforma.
    - 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.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    347
    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

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.