Кодирование binmode: обработка искаженных данных
С Encode::encode
Существуют разные способы обработки искаженных данных.
Делает для binmode как binmode STDOUT ":encoding( $encoding_out )"
также существуют возможности для обработки искаженных данных?
1 ответ
Решение
Да есть $PerlIO::encoding::fallback
, Вы можете назначить требуемый аргумент "check" этой переменной. Когда вы затем помещаете слой PerlIO в дескриптор файла, текущее значение из этой переменной сохраняется для поведения сбоя этих слоев. Например:
use PerlIO::encoding;
use Encode;
# set a value
$PerlIO::encoding::fallback = Encode::FB_WARN;
# apply a layer under that value
open my $fh, '<:encoding(UTF-8)', $some_file or die ...;
# $PerlIO::encoding::fallback can be changed now