in reply to Confusing UTF-8 bug in CGI-script
Not sure if it helps, but your script works fine for me. I.e., when I drop it into the cgi-bin directory of an Apache server, view the page in Firefox, and enter some non-ASCII content into the textarea input field (e.g. by cut-n-pasting something from a Chinese web page), the data is echoed back from the script without an encoding problem. And if I trace the traffic between browser and web server, it's encoded as UTF-8, as expected.
The script also works when I comment out the lines use locale; and use open ':std' => ':encoding(UTF-8)'; (which are superfluous at best, IMHO). And the use utf8; line is of course only required if the script source itself is in fact encoded in UTF-8 (the literal characters "öäüõžš¢ð€¶", in this case).
(tested with various versions of CGI.pm from 3.04 to 3.49 — Update: 3.04, 3.15, 3.29, 3.48 and 3.49, to be precise)
Correction: with CGI-3.49/Perl-5.12.2, STDOUT needs to be explicitly declared as UTF-8 (either with binmode STDOUT, ":utf8", or with use open...), otherwise I'm getting warnings "Wide character in print" in the error log. This is not the case with earlier versions.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: Confusing UTF-8 bug in CGI-script
by ikegami (Patriarch) on Feb 01, 2011 at 18:40 UTC | |
by Anonyrnous Monk (Hermit) on Feb 01, 2011 at 18:55 UTC | |
by ikegami (Patriarch) on Feb 01, 2011 at 19:20 UTC | |
by Anonyrnous Monk (Hermit) on Feb 01, 2011 at 19:25 UTC | |
by ikegami (Patriarch) on Feb 01, 2011 at 20:15 UTC | |
|