私の 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
、すべてのファイルを含むディレクトリ内から実行するか、このディレクトリへのパスをコマンド ライン引数として渡します。最初にファイルをバックアップしてください。同じディレクトリに同じ名前のファイルが存在する場合、名前変更プロセスによって上書きされることに注意してください。