на главнуюВсе эхи RU.PERL
войти ?

имена файлов

От Stas Mishchenkov (2:460/5858) к Alexander N. Skovpen

В ответ на Заголовок предыдущего сообщения в треде (Имя Автора)


Hi, Alexander!

23 май 20 21:07, Alexander N. Skovpen -> Stas Mishchenkov:

SM>> На ntfs имена файлов хранятся в UTF-16, в консоль при этом винда
SM>> отдает их в cp1251. Если нужно создать список файлов в cp866, то в
SM>> именах
SM>> файлов иногда встречается следующее:
SM>> cp1251: Ленинград - Ах уехала жена.mp3
SM>> cp866: Ленинград ? Ах уехала жена.mp3
SM>> Как правильно избежать такой ситуации, ну, кроме переименования файлов,
SM>> разумеется?

ANS> А как ты CP1251 в CP866 перекодируешь?

use Encode 'decode';
use Encode 'encode';

$fname = encode( 'cp866', decode( 'cp1251', $key ) ) if $^O eq 'MSWin32';

кстати, почему-то from_to не срабатывает, хотя внутри у нее как раз то же самое.
и еще один вопрос попутно...
if $^O eq 'MSWin32'; - не совсем корректная проверка, но setlocale почему-то под разной виндой выдает разное при одной и той же локали.

Have nice nights.
Stas Mishchenkov.

--- Мужики, они как куры - двадцать метров от дома и уже ничьи.
* Origin: Lame Users Breeding. Simferopol, Crimea. (2:460/5858)

Ответы на это письмо:

From: Username
Заголовок следующего сообщения в треде может быть длинным и его придется перенести на новую строку

From: Username
Или коротким

FGHI-url этого письма: area://RU.PERL?msgid=2:460/5858+5ec97050