utf8.c AOK [utf8_to_uv] Malformed UTF-8 character my $a = ord "\x80" ; Malformed UTF-8 character my $a = ord "\xf080" ; <<<<<< this warning can't be easily triggered from perl anymore [utf16_to_utf8] Malformed UTF-16 surrogate <<<<<< Add a test when somethig actually calls utf16_to_utf8 __END__ # utf8.c [utf8_to_uv] -W BEGIN { if (ord('A') == 193) { print "SKIPPED\n# ebcdic platforms do not generate Malformed UTF-8 warnings."; exit 0; } } use utf8 ; my $a = "snøstorm" ; { no warnings 'utf8' ; my $a = "snøstorm"; use warnings 'utf8' ; my $a = "snøstorm"; } EXPECT Malformed UTF-8 character (unexpected non-continuation byte 0x73, immediately after start byte 0xf8) at - line 9. Malformed UTF-8 character (unexpected non-continuation byte 0x73, immediately after start byte 0xf8) at - line 14. ######## use warnings 'utf8'; my $surr = chr(0xD800); my $fff3 = chr(0xFFFE); my $ffff = chr(0xFFFF); no warnings 'utf8'; $surr = chr(0xD800); $fffe = chr(0xFFFE); $ffff = chr(0xFFFF); EXPECT UTF-16 surrogate 0xd800 at - line 2. Unicode character 0xfffe is illegal at - line 3. Unicode character 0xffff is illegal at - line 4. ########