Работаю с файлами, поступающими из многих национальных версий Windows XP. Многие программы отказываются с ними работать. Скажем, работают с файлом Без имени.doc только тогда, когда language for non-unicode programs установлен в Russian. Но тогда становятся недоступны файлы с именами типа Cópia de segurança de bd.doc Нет ли какой утилиты, которая бы просматривала каталог и все его подкаталоги и исправляла идиотские буквы на английские? Скажем, так, что файл яйца.doc становился бы yaitsa.doc, а en français.xls --- en francais.xls
Это сообщение отредактировал niktuba - 12-04-2007 - 20:12
JeyLo
QUOTE (niktuba @ 12.04.2007 - время: 20:03)
Работаю с файлами, поступающими из многих национальных версий Windows XP. Многие программы отказываются с ними работать. Скажем, работают с файлом
Не понял. Недоступны в проводнике? В диалоге "открыть"? Или как? У меня стоит по-умолчанию US и спокойно создаются, открываются и т.д. и китайские, и русские, и французские...
niktuba
QUOTE (JeyLo @ 14.04.2007 - время: 13:39)
QUOTE (niktuba @ 12.04.2007 - время: 20:03)
Работаю с файлами, поступающими из многих национальных версий Windows XP. Многие программы отказываются с ними работать. Скажем, работают с файлом
Не понял. Недоступны в проводнике? В диалоге "открыть"? Или как? У меня стоит по-умолчанию US и спокойно создаются, открываются и т.д. и китайские, и русские, и французские...
Не, в проводнике и у меня все хорошо - вне зависимости от того, что там у меня стоит в Regional Options. Не работают именно программы, причем такие, от которых я не могу отказаться, типа переводчиков, Beyond Compare 2 и клиентская часть программного пакета, с промощью которого я могу подавать заявки на специфические конкурсы научных проектов в Португалии и Бразилии. А как вычистишь весь диск от файлов с нац. символами в имени - работает все на ура.
Это сообщение отредактировал niktuba - 14-04-2007 - 17:00
JeyLo
QUOTE (niktuba @ 14.04.2007 - время: 17:00)
А как вычистишь весь диск от файлов с нац. символами в имени - работает все на ура.
Понятно. Старые программы, не поддерживающие юникод и работающие с файловой системой через ... неважно, через чего.
Есть ренеймеры, которые поддерживают юникод и регулярные выражения. С Вашего позволения я это предоставлю несколько поздней. :)
Не понятна только цитируемая фраза. Очень не понятна. Неужели программы не работают, если где-то есть international characters?
niktuba
QUOTE (JeyLo @ 14.04.2007 - время: 22:30)
QUOTE (niktuba @ 14.04.2007 - время: 17:00)
А как вычистишь весь диск от файлов с нац. символами в имени - работает все на ура.
Не понятна только цитируемая фраза. Очень не понятна. Неужели программы не работают, если где-то есть international characters?
Виновен, выразился не очень ясно. Если где-то есть - это про Beyond Compare 2, когда программа сравнивает содержимое двух дисков с данными. Конечно, просто наличие файлов с нац. символами, пока их не трогаешь, ни к каким плохим последствиям не приводит. Плохо то, что какие-то идиоты написали программы для работы с португальскими документами, предупреждая, что всякие сетевые операции хорошо проходят только с файлами, у которых "англобуквенные" имена. И те же проги дают по умолчанию имена файлов на основании первых слов содержимого, вызывая к жизни досументы типа fundação.dat.
QUOTE (JeyLo @ 14.04.2007 - время: 22:30)
Есть ренеймеры, которые поддерживают юникод и регулярные выражения. С Вашего позволения я это предоставлю несколько поздней. :)
Спасибо!
Это сообщение отредактировал niktuba - 14-04-2007 - 23:19
JeyLo
Нету таких ренеймеров. Теперь есть. В аттачменте исполняемый консольный файл. Запускается из директории, в которой есть файлы для переименования. Уходит рекурсивно по всем поддиректориям. Вопросов по переименованию не задает. Тупо переименовывает.
Сейчас переименовывает _только_ файлы русского языка. Подкиньте мне пару специфических символов для определения таблицы, вставлю.
Есть такая известная программа - Total Commander и к нему есть плагин Translit_wdx 1.6 Скачать плагин можно здесь: http://wincmd.ru/plugring/Translit.html С помощью него можно выполнять групповое переименование с русского в транслит(типа Моя фотка в Moya fotka) и обратно, также можно менять кодировку имён файлов с utf-8 на win1251 например. Тот, кто знает как легко в Тотале переименовывать файлы оценит этот плагин. Всё что нужно - скачать Тотал, а на мой взгляд его должен всякий иметь на компе, кому приходиться массово работать с файлами. Плагины устанавливаются автоматически, так что настраивать ничего не придётся. Попробуйте.
JeyLo
QUOTE (barrakuda @ 25.04.2007 - время: 03:15)
С помощью него можно выполнять групповое переименование с русского в транслит(типа Моя фотка в Moya fotka) и обратно, также можно менять кодировку имён файлов с utf-8 на win1251 например.
Однако он не переименовывает португальские, французские и т.д. Кроме того не поддерживаются длинные пути.
niktuba
QUOTE (JeyLo @ 24.04.2007 - время: 21:44)
Нету таких ренеймеров. Теперь есть. В аттачменте исполняемый консольный файл. Запускается из директории, в которой есть файлы для переименования. Уходит рекурсивно по всем поддиректориям. Вопросов по переименованию не задает. Тупо переименовывает.
Сейчас переименовывает _только_ файлы русского языка. Подкиньте мне пару специфических символов для определения таблицы, вставлю.
Dear JeyLo,
Огромное спасибо. Извините, что не сразу ответил. Как только будет время - опишу специфические символы, их там не пара, а гораздо больше.
Niktuba
niktuba
QUOTE (JeyLo @ 24.04.2007 - время: 21:44)
Сейчас переименовывает _только_ файлы русского языка. Подкиньте мне пару специфических символов для определения таблицы, вставлю.
Собственно, все, что встречается в европейских языках, представлено в этой таблице
CODE
0x00C1 [Á] Aacute LATIN CAPITAL LETTER A WITH ACUTE, Á 0x00E1 [á] aacute LATIN SMALL LETTER A WITH ACUTE, á 0x00C2 [Â] Acirc LATIN CAPITAL LETTER A WITH CIRCUMFLEX, Â 0x00E2 [â] acirc LATIN SMALL LETTER A WITH CIRCUMFLEX, â 0x00C6 [Æ] AElig LATIN CAPITAL LETTER AE, Æ 0x00E6 [æ] aelig LATIN SMALL LETTER AE, æ 0x00C0 [À] Agrave LATIN CAPITAL LETTER A WITH GRAVE, À 0x00E0 [à] agrave LATIN SMALL LETTER A WITH GRAVE, à 0x00C5 [Å] Aring LATIN CAPITAL LETTER A WITH RING ABOVE, Å 0x00E5 [å] aring LATIN SMALL LETTER A WITH RING ABOVE, å 0x00C3 [Ã] Atilde LATIN CAPITAL LETTER A WITH TILDE, Ã 0x00E3 [ã] atilde LATIN SMALL LETTER A WITH TILDE, ã 0x00C4 [Ä] Auml LATIN CAPITAL LETTER A WITH DIAERESIS, Ä 0x00E4 [ä] auml LATIN SMALL LETTER A WITH DIAERESIS, ä 0x00C7 [Ç] Ccedil LATIN CAPITAL LETTER C WITH CEDILLA, Ç 0x00E7 [ç] ccedil LATIN SMALL LETTER C WITH CEDILLA, ç 0x00C9 [É] Eacute LATIN CAPITAL LETTER E WITH ACUTE, É 0x00E9 [é] eacute LATIN SMALL LETTER E WITH ACUTE, é 0x00CA [Ê] Ecirc LATIN CAPITAL LETTER E WITH CIRCUMFLEX, Ê 0x00EA [ê] ecirc LATIN SMALL LETTER E WITH CIRCUMFLEX, ê 0x00C8 [È] Egrave LATIN CAPITAL LETTER E WITH GRAVE, È 0x00E8 [è] egrave LATIN SMALL LETTER E WITH GRAVE, è 0x00D0 [Ð] ETH LATIN CAPITAL LETTER ETH, Ð 0x00F0 [ð] eth LATIN SMALL LETTER ETH, ð 0x00CB [Ë] Euml LATIN CAPITAL LETTER E WITH DIAERESIS, Ë 0x00EB [ë] euml LATIN SMALL LETTER E WITH DIAERESIS, ë 0x00CD [Í] Iacute LATIN CAPITAL LETTER I WITH ACUTE, Í 0x00ED [í] iacute LATIN SMALL LETTER I WITH ACUTE, í 0x00CE [Î] Icirc LATIN CAPITAL LETTER I WITH CIRCUMFLEX, Î 0x00EE [î] icirc LATIN SMALL LETTER I WITH CIRCUMFLEX, î 0x00CC [Ì] Igrave LATIN CAPITAL LETTER I WITH GRAVE, Ì 0x00EC [ì] igrave LATIN SMALL LETTER I WITH GRAVE, ì 0x00CF [Ï] Iuml LATIN CAPITAL LETTER I WITH DIAERESIS, Ï 0x00EF [ï] iuml LATIN SMALL LETTER I WITH DIAERESIS, ï 0x00D1 [Ñ] Ntilde LATIN CAPITAL LETTER N WITH TILDE, Ñ 0x00F1 [ñ] ntilde LATIN SMALL LETTER N WITH TILDE, ñ 0x00D3 [Ó] Oacute LATIN CAPITAL LETTER O WITH ACUTE, Ó 0x00F3 [ó] oacute LATIN SMALL LETTER O WITH ACUTE, ó 0x00D4 [Ô] Ocirc LATIN CAPITAL LETTER O WITH CIRCUMFLEX, Ô 0x00F4 [ô] ocirc LATIN SMALL LETTER O WITH CIRCUMFLEX, ô 0x00D2 [Ò] Ograve LATIN CAPITAL LETTER O WITH GRAVE, Ò 0x00F2 [ò] ograve LATIN SMALL LETTER O WITH GRAVE, ò 0x00D8 [Ø] Oslash LATIN CAPITAL LETTER O WITH STROKE, Ø 0x00F8 [ø] oslash LATIN SMALL LETTER O WITH STROKE, ø 0x00D5 [Õ] Otilde LATIN CAPITAL LETTER O WITH TILDE, Õ 0x00F5 [õ] otilde LATIN SMALL LETTER O WITH TILDE, õ 0x00D6 [Ö] Ouml LATIN CAPITAL LETTER O WITH DIAERESIS, Ö 0x00F6 [ö] ouml LATIN SMALL LETTER O WITH DIAERESIS, ö 0x00DF [ß] szlig LATIN SMALL LETTER SHARP S, ß 0x00DE [Þ] THORN LATIN CAPITAL LETTER THORN, Þ 0x00FE [þ] thorn LATIN SMALL LETTER THORN, þ 0x00DA [Ú] Uacute LATIN CAPITAL LETTER U WITH ACUTE, Ú 0x00FA [ú] uacute LATIN SMALL LETTER U WITH ACUTE, ú 0x00DB [Û] Ucirc LATIN CAPITAL LETTER U WITH CIRCUMFLEX, Û 0x00FB [û] ucirc LATIN SMALL LETTER U WITH CIRCUMFLEX, û 0x00D9 [Ù] Ugrave LATIN CAPITAL LETTER U WITH GRAVE, Ù 0x00F9 [ù] ugrave LATIN SMALL LETTER U WITH GRAVE, ù 0x00DC [Ü] Uuml LATIN CAPITAL LETTER U WITH DIAERESIS, Ü 0x00FC [ü] uuml LATIN SMALL LETTER U WITH DIAERESIS, ü 0x00DD [Ý] Yacute LATIN CAPITAL LETTER Y WITH ACUTE, Ý 0x00FD [ý] yacute LATIN SMALL LETTER Y WITH ACUTE, ý 0x00FF [ÿ] yuml LATIN SMALL LETTER Y WITH DIAERESIS, ÿ
Как я понял из контекста, для апгрейда достаточно вставить в REPLACEMENT_TABLE g_CharReplacementTable[] следующий код: