Автоматичне визначення кодування терміналу в perl-скрипті.
Набридло руками змінювати кодування для нормального виведення російського тексту в своїх perl-скриптах в залежності від кодування терміналу (запускаю скрипти під Linux (utf8), Windows (ActivePerl, cp866) і Windows ( Cygwin , cp1251)). Трохи погуглити, але ніяких готових рецептів не зустрів, хороший запит для пошуку щось в голову не прийшов.
Вирішив вчинити так - визначати операційну систему, в якій запущений скрипт, і залежно від цього виставляти кодування вихідного потоку (STDOUT):
#! / Usr / bin / perl; use utf8; require encoding; import encoding ('utf8', 'STDOUT' => & SetEncoding); sub SetEncoding { if ($ ^ O = ~ / ^ MSWin \ d {2} $ / i) { return 'cp866'; } elsif ($ ^ O = ~ / ^ cygwin $ / i) { return 'cp1251'; } elsif (умова для наступної ОС (наприклад - linux)) { return 'utf8'; } ... і так далі, виходячи з особистих потреб .... }
Зауваження, виправлення, доповнення та / або інші способи вирішення завдання з автоматичної установки кодування для perl-скрипта завжди вітаються!
І про всяк випадок, якщо раптом мені не вдасться знайти час написати ще щось в блог до нового року - вітаю всіх своїх читачів з наступаючим новим роком, успіхів вам і побільше приємних відкриттів! ![]()
PS: А для цікавляться фрілансом - новий, але досить цікавий ресурс ФрілансFM - портал про фрілансі
Ще на схожі теми:
Рубрики: Кодинг , Новини |
Мітки: linux , perl , windows , кодування , програмінг , трюки |
Коментарів немає 

Останні коментарі