金钼软件下载站:全力打造中国绿色软件下载基地,所有软件通过安全检测,无木马病毒,无诱导广告,绿色软件轻松下载,更新及时,精彩下载,尽在本下载站!
网站地图
你的位置: 首页 > 游戏资讯 > 操作系统

有关日文压缩文件乱码的问题

  • 2023-05-05 05:14:04
  • 来源:互联网
  • 在手机上看

    扫一扫立即进入手机端

  自己用的是日文的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;

  }

游戏推荐

日文压缩 有关日文压缩文件乱码的问题 apex英雄运行缺少文件(apex英雄运行错误) apex英雄cfg(apex英雄cfg文件在哪) epic无主之地3存档在哪个文件夹(无主之地3epic存档位置) 2k20球衣(2K20球衣在哪个文件) 《疑案追声》dlc文件内容锁定解决方法在哪(疑案追声dlc怎么下载不了) 《死亡之夜》游戏存档位置不对(死亡之夜修改文件) steam太吾绘卷存档(太吾绘卷存档在哪个文件夹) NTFS文件系 WindowsXP的NTFS文件系统优化方法 firefox浏览器清除缓存-火狐浏览器删除缓存文件教程 问题 文件 随机数字命名.pif文件类病毒分析与清除 VirtualBox为Ubuntu配置共享文件夹 Linux文件权限的设置技巧 如何禁用弹出的“windows文件保护”对话框 如何获取linux进程的执行文件路径 分享:Linux操作系统下隐藏文件的新方法 网络文件系统 配置网络文件系统NFS服务 巧妙修改hosts文件手工屏蔽恶意网站 根文件系统 Linux根文件系统的制作 禁止蠕虫病毒替换explorer文件 苹果备份到电脑的文件在哪里?电脑的iTunes备份文件在哪里 winxp看不到隐藏文件解决方法
更多

手机游戏排行榜