Click

Автоматичне визначення кодування терміналу в 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 - портал про фрілансі

Ще на схожі теми:

Category Рубрики: Кодинг , Новини | Tag Мітки: , , , , , | Comments Коментарів немає

Leave a Reply