Domanda

Sto scaricando via FTP alcuni file con nomi cinesi (BIG5 codificati), e Filezilla visualizza quei nomi di file come spazzatura (come FTP non è in grado di gestire qualsiasi codifica diversa da ASCII e UTF-8, come almeno quelli conformi agli standard).

Dato un nome di file con caratteri illeggibili, è possibile per me per riparare la codifica e ottenere una corretta String nome di file dato che so già la codifica del codice sorgente? Sarà il client FTP fraintendendo BIG5 come UTF-8 byte inserti che rendono la conversione di nuovo a BIG5 difficile?

I miei passi proposti (in Java): 1. ottenere il nome del file incomprensibili utilizzando oggetto File. 2. getBytes utilizzando UTF-8. 3. creare una nuova stringa utilizzando quei byte in BIG5. 4. Scrivere il nome del file decodificato indietro al file.

Sarà il metodo di cui sopra lavoro?

È stato utile?

Soluzione

Non ogni sequenza di byte è un ASCII valido o stringa UTF-8, quindi è molto probabile che alcuni dei byte saranno stati scartati, convertiti al carattere la sostituzione, o in altro modo irreversibile alterati. Così sembra che non sarà in grado di recuperare i nomi dei file originali se sono stati modificati da FileZilla per diventare formata correttamente UTF-8 o ASCII.

Si potrebbe essere fortunato ad essere in grado di ottenere una certa percentuale dei caratteri originali della schiena, dove è capitato di essere entrambe valide BIG5 e valida UTF-8, ma dubito che sarà in grado di recuperare l'intero nome del file.

Si potrebbe inviare alcuni esempi dei nomi dei file incomprensibili (come byte prime codificati in esadecimale) per ottenere una risposta più precisa. In questo modo siamo in grado di vedere esattamente ciò che il danno è.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top