in reply to Re^3: convert files to ansi (8859-1)
in thread convert files to ansi (8859-1)

Maybe we talk past each other?

My utf8 to iso-8859-1 should do the following:
- read file into scalar
- eval decode utf8
-- if we get an error, then i simply say it's iso-8859-1 and I don't do anything
-- it we get no error, then i use the decoded string

On the other script iso-8859-1 to utf8, I wanna go the same way:
- read file into scalar
- eval decode iso-8859-1
-- if we get an error, then i simply say it's utf8 and I don't do anything
-- it we get no error, then i use the decoded string

Now I expect we get an eval decode iso-8859-1 error if the input file is utf8, but I don't.

Replies are listed 'Best First'.
Re^5: convert files to ansi (8859-1)
by Corion (Patriarch) on Mar 29, 2017 at 08:35 UTC
    -- if we get an error, then i simply say it's utf8 and I don't do anything

    That's wrong.

    If your input is bytes that are a valid UTF-8 sequence, you still need to call decode on it to have usable strings in Perl.

      Okay. So perl works internal using single-byte code?

      But why does eval decode iso-8859-1 don't throw an error if the input file is utf8?

        Every file is valid ISO-8859-1, because ISO-8859-1 is a single-byte encoding.