Utf 8 可以修复乱码的中文文件名吗?

Utf 8 可以修复乱码的中文文件名吗?,utf-8,ftp,iconv,filezilla,big5,Utf 8,Ftp,Iconv,Filezilla,Big5,我正在通过FTP下载一些具有中文名称(BIG5编码)的文件,Filezilla将这些文件名显示为垃圾(因为FTP无法处理除ASCII和UTF-8之外的任何编码,至少是符合标准的编码) 给定一个带有乱码的文件名,如果我已经知道源编码,我是否可以修复编码并获得正确的文件名字符串?FTP客户端是否会将BIG5误解为UTF-8插入字节,从而使转换回BIG5变得困难 我建议的步骤(Java): 1.使用File对象获取乱码文件名。 2.使用UTF-8获取字节。 3.使用BIG5中的字节创建一个新字符串。

我正在通过FTP下载一些具有中文名称(BIG5编码)的文件,Filezilla将这些文件名显示为垃圾(因为FTP无法处理除ASCII和UTF-8之外的任何编码,至少是符合标准的编码)

给定一个带有乱码的文件名,如果我已经知道源编码,我是否可以修复编码并获得正确的文件名字符串?FTP客户端是否会将BIG5误解为UTF-8插入字节,从而使转换回BIG5变得困难

我建议的步骤(Java): 1.使用File对象获取乱码文件名。 2.使用UTF-8获取字节。 3.使用BIG5中的字节创建一个新字符串。 4.将解码后的文件名写回文件


上述方法有效吗?

并非每个字节序列都是有效的ASCII或UTF-8字符串,因此很可能有些字节已被丢弃、转换为或以其他方式不可逆转地损坏。因此,如果FileZilla将原始文件名修改为格式正确的UTF-8或ASCII,那么看起来您将无法检索原始文件名

您可能很幸运能够恢复一定比例的原始字符,它们恰好是有效的BIG5和有效的UTF-8,但我怀疑您是否能够恢复整个文件名


您可以发布一些乱码文件名的示例(以十六进制编码的原始字节),以获得更明确的答案。这样我们就可以准确地看到损坏情况。

我可以,但它们看起来像典型的垃圾串。e、 g../202.177.28.66/org/uoind/?C?(发布原始字节序列会有帮助吗?我怀疑字符串本身是否会完整地保存所有信息。)如果您可以发布原始字节序列,那会更好。