Pregunta

Estoy descargando a través de FTP algunos archivos con nombres chinos Big5 (codificado), y Filezilla muestra los nombres de archivo como basura (como FTP no puede manejar cualquier otra codificación a ASCII y UTF-8, como menos los que cumplen estándar).

Dado un nombre de archivo con caracteres sin sentido, es posible que yo para reparar la codificación y obtener una cadena de nombre de archivo adecuado teniendo en cuenta que ya sé la codificación de origen? ¿El cliente FTP malinterpretar Big5 como UTF-8 inserto bytes que volver a hacer la conversión de Big5 difícil?

Mi propuso medidas (en Java): 1. Obtener el nombre del archivo ilegible usando objeto File. 2. getBytes utilizando UTF-8. 3. Crear una nueva cadena usando esos bytes en Big5. 4. Escribir el nombre del archivo decodificado volver al archivo.

¿El anterior método de trabajo?

¿Fue útil?

Solución

No todas las secuencia de bytes es un ASCII válidos o UTF-8 cuerdas por lo que es muy probable que algunos de los bytes se han descartado, convirtió a la sustitución de caracteres , o de otra manera irreversible destrozados. Así que parece que usted no será capaz de recuperar los nombres de los archivos originales si han sido modificados por FileZilla para convertirse formado correctamente UTF-8 o ASCII.

podría ser la suerte de ser capaz de obtener un determinado porcentaje de los personajes originales de vuelta, en el que acaba de pasar a ser a la vez Big5 válida y UTF-8 válidos, pero dudo que usted será capaz de recuperar la totalidad del nombre de archivo.

Se puede publicar algunos ejemplos de nombres de los archivos ilegibles (como bytes primas codificados en hexadecimal) para obtener una respuesta más definitiva. De esta manera podemos ver exactamente lo que el daño es.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top