IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機(jī)版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置:首頁(yè)操作系統(tǒng)LINUX → 有關(guān)日文壓縮文件亂碼的問題

有關(guān)日文壓縮文件亂碼的問題

時(shí)間:2015/6/28來源:IT貓撲網(wǎng)作者:網(wǎng)管聯(lián)盟我要評(píng)論(0)

  自己用的是日文的linux系統(tǒng),昨天從同事那兒收了個(gè)壓縮文件,結(jié)果解壓之后文件名都亂嗎了(內(nèi)容正常顯示)。網(wǎng)上google了以下發(fā)現(xiàn)是因?yàn)閣indows下默認(rèn)的編碼方式時(shí)Shift-JIS,到了linux下之后雖然內(nèi)容可以顯示但是文件名卻亂碼。解決方法也挺簡(jiǎn)單的,perl提供了一些方法,直接寫一個(gè)簡(jiǎn)短的程序即可。

  我也是從其他地方參照的,給一個(gè)例子程序。(這里需要安裝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;

  }

關(guān)鍵詞標(biāo)簽:日文壓縮

相關(guān)閱讀

文章評(píng)論
發(fā)表評(píng)論

熱門文章 安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程使用screen管理你的遠(yuǎn)程會(huì)話使用screen管理你的遠(yuǎn)程會(huì)話GNU/Linux安裝vmwareGNU/Linux安裝vmware如何登錄linux vps圖形界面 Linux遠(yuǎn)程桌面連如何登錄linux vps圖形界面 Linux遠(yuǎn)程桌面連

相關(guān)下載

人氣排行 Linux下獲取CPUID、硬盤序列號(hào)與MAC地址linux tc實(shí)現(xiàn)ip流量限制dmidecode命令查看內(nèi)存型號(hào)linux下解壓rar文件安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程Ubuntu linux 關(guān)機(jī)、重啟、注銷 命令lcx.exe、nc.exe、sc.exe入侵中的使用方法查看linux服務(wù)器硬盤IO讀寫負(fù)載