You didn't use binmode to apply an IOLayer to encode Unicode characters you print to STDOUT, neither you encode them manually. When Perl encounters characters where it expects bytes (in any IO) it applies some heuristics to translate the former to the latter. Usually it means that what can be translated to latin1 gets (silently!) translated and everything else is printed in utf8 (with a warning):
$ perl -w -Mutf8 -E'say "ы"; say "˙";' Wide character in say at -e line 1. ы �(my terminal is utf-8)
And when you use utf8, Perl decodes utf8 byte string literals into characters for you. The same is done by Encode::decode.
Does adding binmode STDOUT, ":utf8"; fix your problem? You can also use :encoding(...) IOLayers to encode into other encodings.
In reply to Re: The Queensr˙che Situation
by aitap
in thread The Queensr˙che Situation
by Rodster001
For: | Use: | ||
& | & | ||
< | < | ||
> | > | ||
[ | [ | ||
] | ] |