in reply to Help needed understanding unicode in perl
I understand that a unicode string is a set of symbols and that utf-8 is a way of saving these symbols as a a set of bytes
Correct.
I understand also that "use utf8;" tells perl to interpret the perl file being read as being encoded using utf8 and containing unicode symbols.
Correct.
If I call a function, how do I know if it returns a unicode string or not.
The real question is "is the input a string of bytes or a string of characters, and is the output a string of bytes of a string of characters". Try the various combinations.
How is a unicode string encoded (utf8 or 16 etc?)
Earlier, you defined "unicode string" to mean a decoded string, so your question makes no sense.
If I have a unicode string, how do I output it to my console window so that it appears correctly?
It's easiest with:
use open ':std', ':locale';
That does the equivalent of
my $enc = ...[ get encoding from locale ]...; binmode STDIN, ":encoding($enc)"; binmode STDOUT, ":encoding($enc)"; binmode STDERR, ":encoding($enc)";