我的 Wordpress 网站最近搬了,后来发现图片文件名都改成了这样的文件名:
#U4e09#U661f#U4ee5#U..
它们以前是中文的文件名。不知何故,它们被更改为这种文件名,我真的不知道原因(此外,我没有旧文件,因为我更改了服务器并删除了旧文件)
现在这些图片无法加载到我的帖子中。有什么方法可以让它工作吗?
此 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
,然后从包含所有文件的目录中运行它,或者将该目录的路径作为命令行参数传递。请先备份您的文件,并注意重命名过程将覆盖任何存在于同一目录中的同名文件。