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

时间:2010-03-23 09:39:42

标签: utf-8 ftp iconv filezilla big5

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

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

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

上述方法是否有效?

1 个答案:

答案 0 :(得分:2)

并非每个字节序列都是有效的ASCII或UTF-8字符串,因此很可能会丢弃某些字节,转换为replacement character或以其他方式不可逆地修复。因此,如果文件名已被FileZilla修改为正确形成的UTF-8或ASCII,您将无法检索原始文件名。

你可能很幸运能够获得一定比例的原始角色,它们恰好是有效的BIG5和有效的UTF-8,但我怀疑你能够恢复整个文件名。< / p>

您可以发布一些乱码文件名的示例(作为以十六进制编码的原始字节)以获得更明确的答案。这样我们就能确切地看出损坏是什么。