in reply to Re: encoding question
in thread encoding question

edited my post

use utf8; is used to indicate that the script itself is stored as UTF-8. If that's not the case, don't use it.

That was my understanding as well, but I noticed that it allowed the substitution to work.

Replies are listed 'Best First'.
Re^3: encoding question
by moritz (Cardinal) on May 20, 2010 at 08:17 UTC
    So your script is stored in UTF-8.

    Update: And to elaborate, since your script is stored in UTF-8, the string literal is also UTF-8. Decoding an UTF-8 string as Latin-1 is nonsensical. Either keep your script in UTF-8, and use utf8; (preferred), or store your script as Latin-1.

      I'm using vim. How do I set the encoding of a perl program I save?

      Better yet, if I remove the string from my program and move it into a text file, how do I type a latin-1 character in the text file, and how do I save the text file as a latin-1 file?

      Edit: Ok, I figured out how to type the character: my character palette has two buttons, a Unicode button and an Other Encodings button. When I switch to Other Encodings and select ISO-8859-1, the character codes listed on the left of the character palette change. I checked everything with a hex editor too. Originally, UTF-8 encodings were entered in the text file. So I can get everything to work when the string is in a text file. I guess that is good enough.

        I'm using vim. How do I set the encoding of a perl program I save?
        :set fileencoding=latin1

        And as mentioned elsewhere in this thread, you can automate that if you have modelines enabled.

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