Encoding 恢复的文件';s文件名

Encoding 恢复的文件';s文件名,encoding,filenames,arabic,persian,data-recovery,Encoding,Filenames,Arabic,Persian,Data Recovery,嗨,我最近在服务器崩溃后恢复了我站点的文件。 我有一个wordpress网站,上面有太多用波斯语/阿拉伯语文件名上传的图像文件。 问题是恢复后文件名被重命名。 这些名字太奇怪了。我无法识别特定的编码以便还原原始名称。它看起来确实像妖术,但它不是!你能帮我吗 以下是一个恢复的文件名示例: #U06a9#U0627#U0646#U06a9#U0633#U0633#U0627#U0646#U062f#U0648#U06cc#U0686#U067e#U0646#U0644-150x103.jpg 谢谢。

嗨,我最近在服务器崩溃后恢复了我站点的文件。 我有一个wordpress网站,上面有太多用波斯语/阿拉伯语文件名上传的图像文件。 问题是恢复后文件名被重命名。 这些名字太奇怪了。我无法识别特定的编码以便还原原始名称。它看起来确实像妖术,但它不是!你能帮我吗

以下是一个恢复的文件名示例:

#U06a9#U0627#U0646#U06a9#U0633#U0633#U0627#U0646#U062f#U0648#U06cc#U0686#U067e#U0646#U0644-150x103.jpg


谢谢。

文件名看起来像Unicode字符的id。让我们看看第一个角色

U06a9

  • U:Unicode字符
  • 06a9:字符的Id(十六进制)
在这种格式中,字母a为U0061

下面是一个python脚本,用于将该名称转换为原始名称

import sys

obf = sys.argv[1]

name = obf.split("-")[0]

recovered = ""

working = ""

for c in name:

    if c == 'U':

        working = "\u"

        continue

    working += c

    if len(working) == 6:

            recovered += working.decode("unicode-escape")

print recovered + obf.split(".")[len(obf.split(".")) - 1]
用法示例:

python recover.py U06a9#U0627#U0646#U06a9#U0633-#U0633#U0627#U0646#U062f#U0648#U06cc#U0686-#U067e#U0646#U0644-150x103.jpg

注意:输入不能以哈希开头。

谢谢。就这样!现在我必须找到一种方法来批量重命名它们。让我们试试一些应用程序。你应该能够使用我创建的这个python程序加上一个bash脚本来批量修复它们。