Я знаю, некоторые начнут ругаться на меня:
загрузить Smalltalk IDE (например, ST / X),
открыть рабочее пространство,
введите:
'yourDirectoryHere' asFilename directoryContentsAsFilenamesDo:[:oldFileName |
|cyrString utfString newFile|
cyrString := oldFileName contentsAsString.
utfString := CharacterEncoder encodeString:cyrString from:#'iso8859-5' into:#'utf'.
newFile := oldFile withSuffix:'utf'.
newFile contents:utfString.
].
, который преобразует все файлы в данном каталоге и создает соответствующие файлы .utf, не затрагивая исходные файлы. Даже если вы обычно не используете smalltalk, для такого типа действий smalltalk является идеальной средой сценариев.
Я знаю, что большинство из вас не читают smalltalk, но код должен быть читаемым даже для немалкокеров и соответствующего куска perl / python / java / c # кода, также написанного и выполненного за 1 минуту или около того, принимая выше в качестве руководства. Я предполагаю, что все текущие языки предоставляют что-то похожее на CharacterEncoder выше.