So, does Perl assume by default, even in a UTF-8 environment, that it should output everything in Latin-1 ?
Perl tries to not convert anything at all, automatically.
And since Latin-1 (mostly?) maps the first 256 codepoints 1:1 to bytes, outputting something without any conversion is the same as outputting it as Latin-1.
Note that this round-trips binary data, which means that if your scripts or input use UTF-8, and you don't use utf8;, the output will be UTF-8 again.
But, Latin-1 is limited to codepoints up to 255, so if something higher than that shows up in your string, perl falls back to UTF-8 (and warns).
(As always, I'm linking to Encodings and Unicode in Perl, in the hope that it's useful to you).
In reply to Re^3: Default encoding rules leave me puzzled... (use open qw/ :std :locale /;
by moritz
in thread Default encoding rules leave me puzzled...
by kzwix
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |