Discussion:
допустимы ли спецсимволы в имени файла
(слишком старое сообщение для ответа)
Stanislas Chashchuhin
2007-04-18 16:29:58 UTC
Permalink
Hallo, Eugene Roshal!

Wednesday April 18 2007 08:59, Eugene Roshal wrote to Stanislas Chashchuhin:

SC>> 1) Файл внутри rar-архива, имя которого содержит, например,
SC>> символ '(с)' (U+00A9: Copyright Sign), не поддается
SC>> переименованию. При этом не выводится окно с сообщением 'Cannot
SC>> rename ...'.

ER> Переименование в отличие от упаковки и распаковки пока не поддерживает
ER> Unicode в именах упакованных файлов. Hе Unicode имена в RAR архивах
ER> хранятся в кодировке OEM, а преобразование OEM <-> ANSI портит символ
ER> '(c)' и подобные, так что тут без Unicode не обойтись.

a) Hо ведь три следующие командные строки выполняются ((с) - это один символ
'Copyright Sign'):
winrar a arc file(c)
winrar rn arc file(c) file
winrar rn arc file file(c)
А в окне не выполнить по сути только вторую операцию (с помощью Rename/F2),
т.е. оконный режим и консольная строка ведут себя по разному.

b) GUI WinRAR. При невыполнении команды Rename(F2) для обычного файла выводится
окно c ошибками 'WinRAR: Diagnostic messages". Для файла внутри архива при
невыполнении команды Rename(F2) окно с ошибками не появляется.


SC>> 2) Хуже обстоит дело с такими символами, как U+00A5: Yen Sign.
SC>> Winrar отображает его хорошо, но при работе с такими файлами
SC>> (Rename,Add) это символ заменяется то на '?', то на '_'.

ER> Если упаковка производится в формат RAR, а не ZIP, этот символ
ER> заменяться не должен. Я только что проверил. Разве что под Win9x/Me,
ER> где нет нормальной поддержки Unicode.

Упаковка производится правильно.
Имелось ввиду работа с окнами WinRAR.
a) При команде Add(Alt+A) в поле 'Archive name'(закладка General) предлагается
имя, где вместо 'Yen Sign' стоит '_', хотя на закладке Files все правильно.
b) При выполнении команды Rename(F2) на обычном файле с 'Yen Sign' (не в
архиве) выводится окно с ошибкой, где вместо 'Yen Sign' стоит '?' (из-за этого
и ошибка переименования).
с) View/Print/Find : 'Yen Sign' подменяется символом '?'

Faithfully Yours,
Stanislas

... "А я как раз тут что-то нацарапал" (c) Чиж
Eugene Roshal
2007-04-19 07:16:20 UTC
Permalink
Hello,

SC> А в окне не выполнить по сути только вторую операцию (с помощью
SC> Rename/F2), т.е. оконный режим и консольная строка ведут себя по разному.

GUI из-за неполной поддержки Unicode в данном случае просто не находит нужный
файл в архиве. Насколько я помню, там имя портится еще на этапе передачи
параметров.

SC> Упаковка производится правильно.
SC> Имелось ввиду работа с окнами WinRAR.

Да, там много что надо доделывать. Изначально WinRAR делался для Win95 и был
полностью неюникодным. А теперь объем исходников таков, что переделать их
целиком и быстро - задача неподъемная. Но практически в каждой версии
какой-нибудь очередной кусок кода переводится на Unicode. В 3.70 это работа с
форматом ISO.

Eugene

Loading...