郑州电脑IT培训:有关日文压缩文件乱码的问题解决办法
linux系统和windows系统是目前大家常用的两大操作系统,当然这个操作系统也按照国家不同,语言不同也分文很多种版本,今天我们郑州北大青鸟电脑IT培训就来和大家分享下,日文版本的linux系统下,压缩文件乱码的问题解决办法。
自己用的是日文的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] <zip file>\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 <<HERE;
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;
-------- -------
HERE
printf "%9d %s\n", $total_size, $members_count_str;
}
以上就是具体的操作流程,大家在下面具体的验证下才能更深刻的理解。不管是那种语言版本下的操作系统,基本的才做还是相通的。想要了解更多的服务器管理知识请查看:http://www.hnbenet.com/ 本文源自:http://www.hnbenet.com/jsjl/ 转载请注明出处!
本文由站河南北大青鸟校区整编而成,如需了解更多IT资讯类的文章、新闻、课程和学习技巧、就业案例、招生详情等问题,可以对在线咨询老师进行一对一问答!
推荐资讯
- 女孩去学什么技术好找工作?... 2013-05-20
- 郑州程序员培训学校哪家靠谱... 2019-03-04
- 焦作的电脑学校在哪培训需要多少... 2016-05-05
- 郑州电脑学校选择什么学校好呢... 2019-04-28
- 郑州软件测试工程师培训学校哪家... 2019-07-29
热点资讯
- Windows Server 2008 R2如何修改... 2018-09-07
- 常见的五个Web应用漏洞介绍与其解... 2018-09-07
- 删除远程桌面连接IP记录... 2018-09-07
- 自己动手解决服务器上的安全问题... 2018-09-07
- 郑州北大青鸟学术交流:服务器数... 2018-09-07