У меня есть следующий блок в начале моего сценария:«Turn Off» binmode (STDOUT, «: utf8») Локально
#!/usr/bin/perl5 -w
use strict;
binmode(STDIN, ":utf8");
binmode(STDOUT, ":utf8");
binmode(STDERR, ":utf8");
В некоторых подпрограммах, когда есть другие кодировки (из далекой подпрограммы) , данные будут отображаться неправильно, при получении кириллических или других символов. Это «binmode», который вызывает проблему.
Могу ли я «отключить» binmode utf8 локально, только для подпрограммы?
Я не могу удалить глобальную настройку binmode, и я не могу изменить отдаленное кодирование.
Назад. В случаях, когда вы выводите сочетание текста и байтов, не добавляйте ': utf8' в первую очередь. Кодируйте текст в байты вручную, чтобы вы только выводили байты. Гораздо проще. – ikegami
Проблема в том, что я не могу удалить «: utf8», иначе это решило бы мою проблему. – DanielLazarov
Несомненно, вы можете. Используйте клавишу delete для удаления операторов binmode. – ikegami