Hello, I see that there is one big mess in utf8 warnings for Encode. First, warnings should be enabled by warnings pragma. For utf8 there are: utf8, non_unicode, nonchar, surrogate.
Second, warnings for Encode can be enabled by check flag Encode::FB_WARN or Encode::WARN_ON_ERR. Third, warnings for perlio :encoding layer can be enabled via $PerlIO::encoding::fallback variable (same flags as for Encode module). And here is problem: Should Encode utf8 throw warnings if: * utf8 warnings are enabled by pragma, but not enabled via Encode check flags? * utf8 pragma warnings are disabled, but Encode WARN_ON_ERR bit enabled? * utf8 pragma warnings are disabled and $PerlIO::encoding::fallback variable was not modified? There are couple of bugs and comments about this problem: https://rt.cpan.org/Public/Bug/Display.html?id=88592 https://github.com/dankogai/p5-encode/pull/26#issuecomment-235641347 https://rt.perl.org/Public/Bug/Display.html?id=128788 https://rt.cpan.org/Public/Bug/Display.html?id=116629 https://github.com/dankogai/p5-encode/issues/59 https://github.com/dankogai/p5-encode/commit/a6c2ba385875c2c03bd42350e23aef0188fb23b0 https://github.com/dankogai/p5-encode/commit/07c8adb58e55c7cf66b3d6673bf50010fe1a69ea I think that we need to declare how should utf8 pragma warnings interference with Encode WARN_ON_ERR for Unicode encodings (Encode::utf8 and Encode::Unicode). Documentation: https://metacpan.org/pod/warnings https://metacpan.org/pod/Encode#FB_WARN https://metacpan.org/pod/PerlIO::encoding