有Encode::encode
不同的方法来处理格式错误的数据。
对于binmode like是否binmode STDOUT ":encoding( $encoding_out )"
也存在处理格式错误数据的可能性?
是的,有$PerlIO::encoding::fallback
。您可以将所需的“检查”参数分配给该变量。然后,当您将 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