Как правильно перекодировать имена файлов (UTF-8)
- John Doe
- Бюрократ
- Posts: 13862
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Как правильно перекодировать имена файлов (UTF-8)
Имеется набор файлов, в именах которых которых можно признать UTF-8 в OEM кодировке
.
Как бы правильнее вернуть именам человеческий вид?
Мне известны 2 способа, и оба предполагают использование ansi-плагинов.
1. Unicode Wizard + батник
2. Unicode Wizard + File(s) rename
.
Как бы правильнее вернуть именам человеческий вид?
Мне известны 2 способа, и оба предполагают использование ansi-плагинов.
1. Unicode Wizard + батник
2. Unicode Wizard + File(s) rename
Re: Посоветуйте правильный способ исправить имена файлов (UT
Можно так: минимум два юникодных плагина умеют переименовывать файлы в редакторе. Я нынче пользуюсь VisRen от Alexey Samlyukov. Выделяешь файлы, отправляешь их переименовываться в редактор, выделяешь вторую колонку вертикальным блоком, копируешь, в другом редакторе (VisRen не позволяет переключать кодировки) переключаешь в юникод, копируешь, возвращаешь уже в правильной кодировке.
Собсно, можно так поступить даже с ансишным ReName (только абы не встретились в именах не-OEM символы), не раз так делал.
Собсно, можно так поступить даже с ансишным ReName (только абы не встретились в именах не-OEM символы), не раз так делал.
Пользуюсь ФАРом больше 20 лет © собирательный.
- John Doe
- Бюрократ
- Posts: 13862
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: Посоветуйте правильный способ исправить имена файлов (UT
Проще уж тогда батник нарисовать.
Но хотелось бы более прямой способ.
Но хотелось бы более прямой способ.
Re: Посоветуйте правильный способ исправить имена файлов (UT
Предложенный мною способ не подходит только в случае, если эта операция происходит оченно регулярно или в ветвистом дереве каталогов. Да и то, можно макросы приспособить (собственно, у меня переименование в редакторе именно макросом и вызывается, экономит несколько нажатий клавиш). Для разовых случаев, пусть даже очень много файлов, вся операция занимает меньше минуты, а то и считанные секунды, если наловчиться.
Повторяю, я неоднократно переименовывал из таких вот юникодных имён в читаемые.
Повторяю, я неоднократно переименовывал из таких вот юникодных имён в читаемые.
Пользуюсь ФАРом больше 20 лет © собирательный.
- John Doe
- Бюрократ
- Posts: 13862
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: Посоветуйте правильный способ исправить имена файлов (UT
Ваш способ работает, но он сложнее того что я сам использую (см. первый пост).
Причём и ваш и мой способ кривоваты, хотелось бы прямее.
Причём и ваш и мой способ кривоваты, хотелось бы прямее.
- HaRT
- Moderator
- Posts: 10866
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Re: Посоветуйте правильный способ исправить имена файлов (UT
Как-то так:
Думаю, можно даже добиться, чтобы recode вызывался один раз на все файлы гуртом.
Code: Select all
for %F in ( *.flv ) do @for /f "usebackq delims=" %N in ( `dir /b "%~F" ^| recode.exe utf8..cp866` ) do @ren "%~F" "%~N"
Фар есть инструмент, а не нянька. © 2009 DrKnS
Re: Посоветуйте правильный способ исправить имена файлов (UT
Это, конечно, уже оффтопиком и спором ради спора, но мой способ позволяет не использовать ансишные плагины вообще. Кроме того, не нужно составлять и запускать батник (который, не знаю точно, но подозреваю, что может тоже напортачить с не-OEM символами). К тому же как этот батник составляется? Как минимум, копи-пастой (не поверю, что руками)? Так что ничуть не сложней.
А «более прямых способов» я слышал такого плана, что сгрузить имена файлов в текстовый файл, пропустить его через что-то типа iconv и отдать какой-нить утилите переименования.
Сомневаюсь, что кто-то предложит что-то лучше. Разве что писать скрипт для FarPowerShell или LuaFAR.
А «более прямых способов» я слышал такого плана, что сгрузить имена файлов в текстовый файл, пропустить его через что-то типа iconv и отдать какой-нить утилите переименования.
Сомневаюсь, что кто-то предложит что-то лучше. Разве что писать скрипт для FarPowerShell или LuaFAR.
Пользуюсь ФАРом больше 20 лет © собирательный.
- HaRT
- Moderator
- Posts: 10866
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Re: Посоветуйте правильный способ исправить имена файлов (UT
Мне было бы интересно увидеть развитие этой идеи до работоспособного состояния.DrKnS wrote:Подозреваю, можно будет обойтись и без всяких левых exe, засунув в нужные места "chcp 65001" и "chcp 866".
Фар есть инструмент, а не нянька. © 2009 DrKnS
- John Doe
- Бюрократ
- Posts: 13862
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: Посоветуйте правильный способ исправить имена файлов (UT
Имелось ввиду сложнее чем с помощью UnicodeWizard.Wave wrote:К тому же как этот батник составляется? Как минимум, копи-пастой (не поверю, что руками)? Так что ничуть не сложней.
Батник не проще, даже наоборот - ручной работы будет больше, зато благодаря визуальному контролю больше шансов что никакие имена не попортятся.
- John Doe
- Бюрократ
- Posts: 13862
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: Посоветуйте правильный способ исправить имена файлов (UT
Спотыкается на Ελληνικά.flvHaRT wrote:Как-то так:Code: Select all
for %F in ( *.flv ) do @for /f "usebackq delims=" %N in ( `dir /b "%~F" ^| recode.exe utf8..cp866` ) do @ren "%~F" "%~N"
Code: Select all
╬Х╬╗╬╗╬╖╬╜╬╣╬║╬м.flv
В идеале надо бы чтоб переименование производилось только в случае удачного декодирования, а всё что не удалось переименовать - выводилось бы на консоль.
- HaRT
- Moderator
- Posts: 10866
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Re: Посоветуйте правильный способ исправить имена файлов (UT
John Doe wrote:Спотыкается на Ελληνικά.flvHaRT wrote:Как-то так:Code: Select all
for %F in ( *.flv ) do @for /f "usebackq delims=" %N in ( `dir /b "%~F" ^| recode.exe utf8..cp866` ) do @ren "%~F" "%~N"
recode --help wrote:Report bugs to <recode-bugs@iro.umontreal.ca>.
Согласен. Я ж и не утверждаю, что моё решение самое лучшее.John Doe wrote:В идеале надо бы чтоб переименование производилось только в случае удачного декодирования, а всё что не удалось переименовать - выводилось бы на консоль.
Фар есть инструмент, а не нянька. © 2009 DrKnS
- John Doe
- Бюрократ
- Posts: 13862
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: Посоветуйте правильный способ исправить имена файлов (UT
Боюсь тут издержки портирования на Win32...recode --help wrote:Report bugs to <recode-bugs@iro.umontreal.ca>.
Вот что-то не соображу как применить recode к тому же имени, но спроецированному на cp1251.
Code: Select all
Путин и Шевчук. Полная версия.flv
- Alexey Samlyukov
- Posts: 1765
- Joined: Tue 15 Mar, 2005 17:28
- Been thanked: 7 times
- Contact:
Re: Посоветуйте правильный способ исправить имена файлов (UT
это не плагин, это фар2 так устроен. код не менялся в этом месте, в фар1 переключается, так что...VisRen не позволяет переключать кодировки
и кстати, не факт что такое переименование пройдет
- HaRT
- Moderator
- Posts: 10866
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Re: Посоветуйте правильный способ исправить имена файлов (UT
У меня получилось вот так:John Doe wrote:Вот что-то не соображу как применить recode к тому же имени, но спроецированному на cp1251.Code: Select all
Путин и Шевчук. Полная версия.flv
Code: Select all
chcp 1251 & dir /b *.flv | recode utf8..cp866 & chcp 866
Фар есть инструмент, а не нянька. © 2009 DrKnS