Ho alcune directory/file con caratteri giapponesi. Se provo a leggere un nome di file (non il contenuto) contenente (ad esempio) a ク ricevo una stringa contenente un . Se provo a creare un file/directory contenente un file un file/directory appare contenente un?.java read write unicode/nome file UTF-8 (non contenuto)
Come esempio: I elenca i file con.
File file = new File(".");
String[] filesAndDirs = file.list();
l'array filesAndDirs contiene ora le directory questo i caratteri speciali. La stringa ora contiene solo . Sembra che non ci sia nulla da decodificare perché un getbytes mostra solo "-17 -65 -67" per ogni carattere nel nome del file anche per caratteri diversi.
Uso MacOS 10.8.2 Java 7_10 e Netbeans.
Qualche idea?
ringraziare in anticipo :)
Non è chiaro * come * stai mostrando quei nomi di file o se stai fornendo una codifica per 'String.getBytes()' (che devi sempre). Dovresti scaricare il punto di codice UTF-16 per ogni carattere nel nome del file, per vedere cosa sta realmente accadendo. Inoltre, non è chiaro come stavi ottenendo i dati di input quando provi a creare il file. –
'getBytes' restituisce ciò che sembra essere valido UTF8 –
@Jan Sì sembra UT8 valido ma getBytes restituisce" -17 -65 -67 "per ogni carattere. Ma non tutti i caratteri nel nome del file/della directory sono gli stessi. Sembra che perdo tutte le informazioni tra il sistema operativo e JavaVM. "-17 -65 -67" viene ripetuto per ogni carattere speciale. [a-zA-Z ...] vengono restituiti come previsto. Mi aspetterei almeno diversi byte per ogni carattere. –