自己用的是日文的linux系统,昨天从同事那儿收了个压缩文件,结果解压之后文件名都乱吗了(内容正常显示)。网上google了以下发现是因为windows下默认的编码方式时Shift-JIS,到了linux下之后虽然内容可以显示但是文件名却乱码。解决方法也挺简单的,perl提供了一些方法,直接写一个简短的程序即可。

我也是从其他地方参照的,给一个例子程序。(这里需要安装Archive::Zip模块)

#!/usr/bin/perl

use strict;

use warnings;

use Archive::Zip qw( :ERROR_CODES :CONSTANTS );

use Encode qw/from_to/;

use Getopt::Long;

use DateTime;

use DateTime::TimeZone::Local;

GetOptions('list|l' => \ my $mode_list);

if (scalar @ARGV < 1) {

print "Usage: $0 [-l] \n";

exit 1;

}

my $zipfile = shift @ARGV;

my $zip = Archive::Zip->new();

unless ( $zip->read($zipfile) == AZ_OK ) {

die 'read error';

}

print "Archive: $zipfile\n";

if ($mode_list) {

print <

Length     Date    Time   Name

--------  ---------- -----  ----

HERE

}

my $total_size = 0;

my @members = $zip->members();

my $members_count = scalar @members;

foreach my $member (@members) {

my $filename = $member->fileName;

from_to($filename, 'cp932', 'utf8');

if ($mode_list) {

my $dt = DateTime->from_epoch(

epoch => $member->lastModTime

)->set_time_zone(DateTime::TimeZone::Local->TimeZone());

$total_size += $member->uncompressedSize;

printf "%9d  %s  %s\n",

$member->uncompressedSize,

$dt->ymd('-') . ' ' . sprintf("%02d", $dt->hour) . ':' . sprintf("%02d", $dt->min),

$filename;

} else {

print "  inflating: $filename\n";

unless (defined $zip->extractMember($member, $filename)) {

warn "  failed: $filename\n";

}

}

}

my $members_count_str = "$members_count file" . ($members_count > 1 ? 's' : '');

if ($mode_list) {

print <

--------  -------

HERE

printf "%9d  %s\n", $total_size, $members_count_str;

} 关键词标签:日文压缩

linux日文乱码,有关日文压缩文件乱码的问题相关推荐

  1. linux日文乱码,解决日文压缩文件乱码问题的方法——深圳培训linux

    这篇文章, 有关日文压缩文件乱码的问题,自己用的是日文的linux系统,昨天从同事那儿收了个压缩文件,结果解压之后文件名都乱吗了(内容正常显示).网上 google了以下发现是因为windows下默认 ...

  2. java 压缩 乱码_如何解决java压缩文件乱码问题

    用java来打包文件生成压缩文件,有两个地方会出现乱码: 内容的中文乱码问题:修改sun的源码.使用开源的类库org.apache.tools.zip.ZipOutputStream和org.apac ...

  3. linux常用解压和压缩文件的命令

    linux常用解压和压缩文件的命令 .tar 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包,不是压缩!) ---- ...

  4. 文件恢复+html乱码怎么办,数据恢复的文件乱码,怎么办?

    吴川 华南区技术负责人 概要 通过数据恢复工具恢复的文件乱码了,到底是怎么回事呢?当文件发生丢失的情况后又有哪些注意事项?都叫兽为您解答. 都叫兽™ 数据恢复 是按照Raw模式进行文件扫描并恢复的,它 ...

  5. linux系统如何解压rar文件怎么打开,在Linux下如何打开RAR压缩文件

    关键词: 在Windows下常见的RAR压缩文件在Linux下目前还没有免费的打开工具. 如果要用,只能用RAR的Linux试用版本. 下载地址是:http://www.rarlab.com/down ...

  6. 20191004在LINUX下如何将tar压缩文件解压到指定的目录下

    百度搜索:tar 解压缩到指定目录 https://zhidao.baidu.com/question/9844116.html 在LINUX下如何将tar压缩文件解压到指定的目录下 各位,请教一下在 ...

  7. linux zcat 使用方法,使用linux的zcat命令查看压缩文件的内容

    服务器 本篇文章和大家了解一下使用linux的zcat命令查看压缩文件的内容.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. zcat命令用于不真正解压缩文件,就能显示压缩包中文件的 ...

  8. 网络安全与网站安全及计算机安全:如何使用Kali Linux的Rarcrack获取RAR压缩文件加密密码?

    知识点详解 1.1.Rarcrack是一款获取压缩文件密吗的软件,但是仅支持zip.rar和7z三种类型. 1.2.在kali操作系统中是没有此工具的,所以就必须先安装才能使用. 1.3.安装Rarc ...

  9. geany java编译器乱码_Ubuntu Geany打开文件乱码的解决方法

    Geany是Ubuntu下一款很不错的文本编辑工具和开发工具,但美中不足的是使用Geany打开非UTF-8编码的简体中文文件时,一般显示乱码,查看看属性会发现Geany对于中文文件是按照ISO8859 ...

最新文章

  1. AttributeError: ‘tuple‘ object has no attribute ‘group‘
  2. 【转载】Linux下安装、配置、启动Apache
  3. 首发:一份国内机器学习爱好者的性别比例的抽样调查
  4. Projection of Tuple DataSet具体用法
  5. 机器学习从入门到精通50讲(一)-大数据平台下的数据质量管理
  6. Axios 作弊表(Cheat Sheet)
  7. windows下安装nodejs多版本管理工具nvm-windows
  8. 禁止“挖矿”!谷歌杀了所有的 Chrome 扩展应用
  9. 指向Member Function的指针
  10. 节后一起搞学习!聊一聊我在 B 站上自学编程的经历吧
  11. 计算机一级msoffice考试选择题题库,计算机一级《MS Office》考前选择题题库与答案...
  12. 利用keras实现孪生网络中的权值共享
  13. EJB开发第一个无状态会话bean、开发EJB客户端
  14. 19款资源整合类网站推荐:每一个网站都堪称以一敌百
  15. Java中list转map的常用方法
  16. lisp 左手钢筋_左手键配置程序
  17. 机器学习练习 6 - Support Vector Machines(支持向量机)
  18. 【新手上路常见问答】关于知识工程
  19. 华为鸿蒙朱丹丹,周一围心疼老婆?朱丹二胎产后憔悴臃肿却忙复出:这一年太痛苦...
  20. 收集的一些学习ios的好网站

热门文章

  1. 在html中怎么去掉自动编号,Word中取消自动编号如何操作
  2. word 内嵌自动编号
  3. 打印5列五颗星_王者荣耀段位排列每个段位多少星?段位排列标志多久刷新一次?[多图]...
  4. 灵石县“灵石酸枣仁”品牌正式发布,促进产业发展 助力乡村振兴
  5. java中asscc码表,RedHat Linux各版本汇总
  6. 深圳python培训比较好的机构
  7. 第一篇博客关于maven阿里云镜像
  8. node 压缩图片_图片压缩有困难?你肯定没用过这几款工具
  9. 【nowcoder 186D / 19153】无限手套(DP)(生成函数)
  10. 汇编语言程序设计钱晓捷第五版期末复习参考