1

我的 Wordpress 网站最近搬了,后来发现图片文件名都改成了这样的文件名:

 #U4e09#U661f#U4ee5#U..

它们以前是中文的文件名。不知何故,它们被更改为这种文件名,我真的不知道原因(此外,我没有旧文件,因为我更改了服务器并删除了旧文件)

现在这些图片无法加载到我的帖子中。有什么方法可以让它工作吗?

4

1 回答 1

2

此 Perl 脚本可能有效,但前提是您的文件系统对文件名使用 UTF-8 编码。还是试试吧:

#!/usr/bin/perl
# 
# Rewrite UTF-16 codes in file names
# Usage: fixutf.pl <directory>
# (Defaults to current directory if omitted)
# 

use strict;
use warnings;
my $oldname;
my $newname;
my $directory = '.';

binmode(STDOUT,':raw:encoding(UTF-8)');
if ($ARGV[0]) {
   $directory = $ARGV[0];
}
opendir (DIR,$directory) or die $!;
print "Scanning directory '$directory/' ...\n";

while ($oldname = readdir(DIR)) {
   if ($oldname =~ /#U([0-9a-f]{4})/) {
      $newname = $oldname;
      $newname =~ s/#U([0-9a-f]{4})/pack('U',hex($1))/seg;
      rename $oldname,$newname;
      print "  Renamed $oldname to $newname\n";
   }
}

print "Finished\n";

将其另存为“fixutf.pl”,将其权限更改为0755,然后从包含所有文件的目录中运行它,或者将该目录的路径作为命令行参数传递。请先备份您的文件,并注意重命名过程将覆盖任何存在于同一目录中的同名文件。

于 2013-11-02T14:03:03.393 回答