in reply to Another utf-8 decoding problem

First of all, please find out which encoding your terminal/console accepts (see for example Encodings and Unicod in Perl for a short guide, and how to set up clean UTF-8 environment).

Then decode all incoming data, and before printing anything, set up an IO layer:

binmode STDOUT, ":encoding($encoding_supported_by_your_terminal)":

If you debug output, use hexdump -c - it never lies (as opposed to your terminal, which often does).

Perl 6 - links to (nearly) everything that is Perl 6.

Replies are listed 'Best First'.
Re^2: Another utf-8 decoding problem
by DreamT (Pilgrim) on Oct 11, 2010 at 11:51 UTC
    Thanks,

    Regarding the environment, I'm unfortunately forced to use iso-encoding, since the target environment uses it. So it feels like i need to present the data in this encoding regardless of the input format?
      When you use Perl for text processing, you always use perl's internal encoding for string representation (which is either iso-8859-1 or UTF-8, depending on the presence of the UTF-8 flag).

      So, you decode input data, encode output data. That's always the same workflow, independently of what your output encoding ist.

      Perl 6 - links to (nearly) everything that is Perl 6.
        Ok. So I should encode the data from utf-8 and decode it to iso? Why do I then have to set binmode if I have correct encoding of my string? This is greek to me, sorry_:-)