densa
Был у меня работник на одном сайте, которых наделал файлов с русскими именами, после смены хостинга имена файлов оказались в хз какой кодировки.
например раньше было ресторан1.jpg
а сейчас в этой папке такие имена файлов
#U0420#U0435#U0441#U0442#U043e#U0440#U0430#U043d1.jpg
К сожалению поздно заметил и со старого хоста все удалено
Подскажите можно ли как то восстановить имена файлов?
Yacc
Как-то так
Код:
<?php
$old_file_name = '#U0420#U0435#U0441#U0442#U043e#U0440#U0430#U043d1.jpg';
$new_file_name = preg_replace_callback(
'/#U([0-9a-f]{4})/i',
function ($match) {
return mb_convert_encoding(pack('H*', $match[1]), 'cp1251', 'utf-16');
},
$old_file_name
);
rename($old_file_name, $new_file_name);
Дартаньян
могу даром на питоне нафигачить скрипт.
# -*- coding: utf-8 -*-
#!/usr/bin/env python
import sys, os
for nfile in [f for f in os.listdir(sys.argv[1]) if f.startswith('#U')]:
s = nfile.split('.')
name = ''.join(chr(int(i[0:4], 16))+i[4:] for i in s[0].split('#U') if i)+'.'+s[1]
os.rename(nfile, name)