Question

Je télécharge via FTP des fichiers avec des noms chinois (BIG5 codé), et Filezilla affiche les noms de fichiers comme des déchets (comme FTP ne peut pas gérer tout codage autre que ASCII et UTF-8, comme les moins conformes à la norme).

Étant donné un nom de fichier avec des caractères tronqués, me est-il possible de réparer l'encodage et obtenir une chaîne de nom de fichier approprié étant donné que je connais déjà le codage source? Est-ce que le client FTP GRAND5 sous forme d'octets mal interprété d'insertion UTF-8 qui font revenir à la conversion GRAND5 difficile?

Mes étapes proposées (en Java): 1. obtenir le nom de fichier brouillées à l'aide du fichier objet. 2. GetBytes utilisant UTF-8. 3. créer une nouvelle chaîne en utilisant ces octets dans BIG5. 4. Ecrivez le nom décodé dans le fichier.

Est-ce que le travail de la méthode ci-dessus?

Était-ce utile?

La solution

Pas toutes les séquences d'octets est un ASCII valide ou une chaîne UTF-8 il est donc fort probable que certains des octets auront été mis au rebut, convertis en caractère remplacement, ou autrement de façon irréversible mutilée. Il semble donc que vous ne serez pas en mesure de récupérer les noms de fichiers d'origine si elles ont été modifiées par FileZilla pour devenir correctement formé UTF-8 ou ASCII.

Vous pourriez être la chance d'être en mesure d'obtenir un certain pourcentage des caractères originaux arrière, où ils ne se trouvaient à la fois valide GRAND5 et valide UTF-8, mais je doute que vous serez en mesure de récupérer le nom de fichier complet.

Vous pouvez poster quelques exemples de vos noms de fichiers tronqués (en octets bruts encodés en hexadécimal) pour obtenir une réponse plus précise. De cette façon, nous pouvons voir exactement ce que le dommage est.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top