提取时日文文件名出现乱码

Posted

技术标签:

【中文标题】提取时日文文件名出现乱码【英文标题】:Japanese filename is getting garbled while extracting 【发布时间】:2014-08-27 04:40:29 【问题描述】:

我正在压缩一个 .csv 文件,如下所示:

fileInputStream = new FileInputStream(csvFile);
final ZipEntry zipEntry = new ZipEntry(csvFile.getname());
            zipOutputStream.putNextEntry(zipEntry);
            final byte[] buffer = new byte[4 * 1024];
            int size = fileInputStream.read(buffer);
            while (size != -1) 
        
                zipOutputStream.write(buffer, 0, size);
                size = fileInputStream.read(buffer);
               

文件名还包含日文/中文字符 使用 winzip/7-zip 解压时,解压后的 .csv 文件名不会乱码,但使用默认 windows 解压器时,文件名会乱码。

【问题讨论】:

您是否使用同一台计算机进行压缩和解压缩? zip文件格式不知道文件名的字符编码。 没有文件被压缩并通过电子邮件发送 您好,我使用 mimiutility 对 shiftjs 中的文件名进行编码,现在可以正常工作,以防附件是从 Outlook Web Access 下载的,但从 Outlook 2013 下载时无法正确提取。有什么想法吗? 我的想法是,zip文件格式不知道文件名的字符编码。 【参考方案1】:

我用过:

String fileName = MimeUtility.encodeText(filename,"SJIS",null);

然后它似乎在默认语言为日语的系统上运行良好。

【讨论】:

以上是关于提取时日文文件名出现乱码的主要内容,如果未能解决你的问题,请参考以下文章

[ASP.NET][C#]下载文件时中文文件名出现乱码

PDF 数据提取给出符号/乱码?

怎么解决读取txt文件读取时中文乱码问题

thinkphp volist遍历oracle数据库时中文出现乱码

为啥在win10上linux会出现乱码

excel打开csv 出现乱码怎么解决