Я сохраняю файлы в раздел ext2 с помощью wget, используя обычные флаги. Получить их имена иногда не удается:
s = `find "#{@dir}" -type f -printf "%T@\t::::\t%s\t::::\t%p\n" |sort`
s.each_line {|l|
file_name = l.chomp.split("\t::::\t")[2] #=>
# ...66:in `split': invalid byte sequence in UTF-8 (ArgumentError)
}
Тесты:
l.encoding #=> UTF-8
l.valid_encoding #=> false
l.inspect #=> "...St. Paul\xE2%80%99s Cathedral..."
Iconv.conv('utf-8', 'utf-8', l) #=>
# ...77:in `conv': "\xE2%80%99s Cathedr"... (Iconv::IllegalSequence)
Как я могу получить имя файла и удалить файл?
Забыл упомянуть, в bash файл выглядит так:
index.php?attTag=St. Paul?%80%99s Cathedral
Вставка этой строки обратно в ls не возвращает такого файла или каталога.