in reply to Re^5: german Alphabet
in thread german Alphabet

No. Perl never uses latin-1.

In the first case (print "\xEA";), Perl is expecting bytes, and you provided a string of bytes, so it printed the bytes (as-is). It didn't warn because you provided what was expected.

In the second case (print "\x{44B}";), Perl is expecting bytes, and you didn't provided a string of bytes, so it guesses that you meant to encode them using UTF-8, does so, and warns.

In the third case (print "\xC3\xAA";), Perl is expecting bytes, and you provided a string of bytes, so it printed the bytes (as-is). It didn't warn because you provided what was expected.

(A string a bytes is a string consisting of entirely characters with a value less than 256.)

Replies are listed 'Best First'.
Re^7: german Alphabet
by Anonymous Monk on Dec 16, 2018 at 21:47 UTC

    I think I understand it now: decoding "\xC3\xAA" from UTF-8 creates a code-point with a value less than 256, U+00EA, and "\xEA" just happens to be latin-1 for the same code point because of the way Unicode has been designed, not a Perl quirk.

    Thank you for correcting me.