|
|
|
Perl: Перекодирование данных из STDIN
|
|||
|---|---|---|---|
|
#18+
Есть pl-скрипт в кодировке UTF-8. Скрипт запускается из консоли Windows, в консоли выбрана кодовая страница OEM (CP-866); установка кодовой страницы UTF-8 (chcp 65001) работает, но вызывает различные глюки, поэтому ее использовать не получится. Поскольку сам скрипт в UTF-8, в нем указывается use utf8. Чтобы при выводе текстов в консоль данные читались, задаю кодировку в PerlIO Layers. И хотелось бы задать кодировку также для STDIN. Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. Запускаю: Код: plaintext 1. 2. 3. 4. 5. 6. Если binmode STDIN закомментировать, вывод будет такой же. Подскажите, как сделать это правильно (без подключения Encode и перекодирования @ARGV вручную)? По смыслу, для STDIN нужен слой :decoding, но такого нет. ________________________ Мы смотрим с оптимизмом... ...в оптический прицел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2012, 13:39:24 |
|
||
|
Perl: Перекодирование данных из STDIN
|
|||
|---|---|---|---|
|
#18+
Кстати, если перекодировать вручную, то нужно задавать кодировку CP-1251: Код: plaintext Однако если задать cp1251 в binmode, это ничего не меняет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2012, 13:44:17 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=38004162&tid=1464560]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
97ms |
get topic data: |
16ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 241ms |
| total: | 450ms |

| 0 / 0 |
