Ha, nevermind, I figured it out. Turns out that when a param was sent to the script indicating a
cookie should be changed, it was using CGI's header() function to generate the header rather than my
header text. Adding -charset => 'UTF-8' to header() did the trick, naturally.
Still curious about binmode(), though; is there some mod_perl-specific reason
that it would fail?
Brian Dimeler wrote:
Hi, I'm trying to set binmode(STDOUT, ':utf8') from within a PerlRun
script (mod_perl 1.29, apache 1.3.29, perl 5.8.6), and it's failing
(returning undef) without setting $!, as the docs claim it should.
I really shouldn't even have to do this at all, since I'm already setting
Content-type: text/html; charset=UTF-8
as the header,
<?xml version="1.0" encoding="UTF-8"?>
at the start of the document AND, just to be thorough,
<meta http-equiv="Content-type" content="text/html; charset=UTF-8"/>
in the <head> section of all my generated HTML. When I invoke my script
at the command line, the output shows up in the terminal with the proper
unicode characters. Málaga is Málaga. But the same script, when run by
mod_perl, sends "Málaga" to the browser instead. Why is this, and why
is it that the only obvious workaround, binmode(), has decided to
quietly quit? (and yes, I'm setting binmode() before using print() for
for the first time).
Let me know if that's not enough information. Unfortunately I cannot
post the entire script in a public forum.