Показать сообщение отдельно
Старый 22.05.2008, 10:30   #13
jk3
Постоялец
 
Пол:Мужской
Регистрация: 24.01.2007
Сообщений: 272
Репутация: 480
По умолчанию Ответ: Как определить есть ли в имени файла юникод-символы?

Цитата:
Сообщение от PLAstic Посмотреть сообщение
Копни в сторону WSH. Наверняка, это базовые строковые функции. А если нет, то помжно тупо посимвольно проверить код символов в имени файла.

До WSH еще не добрался, но кое-что выяснил.

Название файла сохраняется на диск NTFS в Unicode, а в файле .html (ANSI-кодировка, cp1251) в зависимости от браузера:

IE
Юникод-символ, для которого есть соответствие в cp1251, заменяется на этот символ.
Юникод-символ, для которого нет соответствия в cp1251, заменяется на &#десятичный_код_символа;, например −.

Opera (Save With Images Use Subfolder = true)
Юникод-символ, для которого есть соответствие в cp1251, заменяется на этот символ.
Юникод-символ, для которого нет соответствия в cp1251, заменяется на ?. При этом в NTFS он сохраняется как юникод и поэтому ссылки на каталог _files теряются.

Firefox
Все Юникод-символы заменяются на UTF-8 код символа, например %E2%88%92


Пробовал программы:

Super Replacer
Не реализованы масочные последовательности с отрицанием, поэтому ничего не получиться сделать
(+собственный формат регулярных выражений)

BatchRename Pro
File Renamer Deluxe
Тоже только замена конкретных символов на другой

FlashRenamer
Работает не со всеми Юникод символами, а только с теми, для которых есть соответствие в cp1251.
Русские символы в regexp-е не поддерживаются
т.е. при переименовании по регулярному выражению
[^\x00-\xFF] заменить на "_"
все русские символы в имени файла заменяются на подчеркивание


какие еще предложения?
jk3 вне форума
 
Ответить с цитированием Вверх
 
Время генерации страницы 0.08018 секунды с 9 запросами