What you mean: isn't text.

The text you typed into your browser is transformed by it as follows:

  1. It is encoded using the proper character encoding.
  2. Some of it is encoded using percent encoding.
  3. The resulting string is joined to others to form a application/x-www-urlencoded document.

That leaves you something that's no longer your text. The proper inverse of that is:

  1. Split the form data into its components.
  2. Remove any percent encoding.
  3. Remove the character encoding.

You're adding an additional step:

  1. Remove the character encoding. (XXX)
  2. Split the form data into its components.
  3. Remove any percent encoding.
  4. Remove the character encoding.

The fourth step notices something is odd and throws an error.

And how then transfer the text and make perl to understand it is UTF-8 encoded?

That's what the «-utf8» in «use CGI qw(:all -utf8);» does. "This makes CGI.pm treat all parameters as UTF-8 strings" by passing them to decode.


In reply to Re^3: Confusing UTF-8 bug in CGI-script by ikegami
in thread Confusing UTF-8 bug in CGI-script by wanradt

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.