Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [Java] Codepage nel nome dei file

    Sto sviluppando un software per effettuare il backup degli iPod. Il problema e' il seguente: devo copiare dei file MP3 rinominandoli con il contenuto dei campi ID3. La codifica di questi campi e' indefinita, e talvolta ci sono dei caratteri strani che creano degli errori nella creazione dei file.
    Esiste una classe Java che converte le stringhe (UTF16 ad esempio) in una "equivalente" che rispetti un determinato codepage ?
    Seconda domanda : Se uso Fat32 o NTFS sotto Windows dovrei usare un codapage CP-1252 , sotto ext3 su Linux ?

    Grazie in anticipo per il vostro aiuto.
    JavaFleX

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

    Re: [Java] Codepage nel nome dei file

    Originariamente inviato da Javaflex
    Esiste una classe Java che converte le stringhe (UTF16 ad esempio) in una "equivalente" che rispetti un determinato codepage ?
    Dipende con cosa parti e cosa vuoi ottenere. Se parti da un oggetto String (che è sempre in UTF-16 appunto) e vuoi ottenere una sequenza di byte in un determinato charset, allora vedi i vari metodi getBytes di String o meglio ancora la classe CharsetEncoder.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3

    Re: Re: [Java] Codepage nel nome dei file

    Originariamente inviato da andbin
    Dipende con cosa parti e cosa vuoi ottenere. Se parti da un oggetto String (che è sempre in UTF-16 appunto) e vuoi ottenere una sequenza di byte in un determinato charset, allora vedi i vari metodi getBytes di String o meglio ancora la classe CharsetEncoder.
    Ottimo era proprio quello che cercavo ! ! ! Se trasformo la stringa UTF16 in CP-1252 dovrei avere dei nomifile che non genereranno errori sotto Win, Linux e Mac.

    Grazie 1K

  4. #4

    Re: Re: [Java] Codepage nel nome dei file

    Originariamente inviato da andbin
    Dipende con cosa parti e cosa vuoi ottenere. Se parti da un oggetto String (che è sempre in UTF-16 appunto) e vuoi ottenere una sequenza di byte in un determinato charset, allora vedi i vari metodi getBytes di String o meglio ancora la classe CharsetEncoder.
    Non riesco ad ottenere la stringa di output, ho scritto questo codice come esempio:

    String dirtyVaue = "Qèstà é ùnà pròvà"
    Charset charset = Charset.forName("cp1252");
    String value = charset.encode(dirtyValue).toString();

    if ( !value.contentEquals(dirtyValue) ) {
    System.out.println("Differenza/e");
    System.out.println("==> " + dirtyValue);
    System.out.println("<== " + value );
    }


    Il proble che in output value contiene valori del genere : java.nio.HeapByteBuffer[pos=0 lim=23 cap=23]
    Questa classe proprio non la capisco.....

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.