That would be nice indeed, and perhaps a little switch in C::A to enable it?
2008/10/16 Mark Stosberg <[EMAIL PROTECTED]>: > On Wed, 15 Oct 2008 17:11:34 +0200 > Rhesa Rozendaal <[EMAIL PROTECTED]> wrote: > >> Mike Tonks wrote: >> > Hi All, >> > >> > I recently encountered the dreaded utf8 funny characters, again. This >> > time on the input data coming from form entry fields. >> > >> > It's CGI.pm that actually does the processing, and needs to read the >> > stream as utf8. There is a flag for this, but I couldn't get that to >> > work, so as a temporary measure I read all the parameters and pass >> > them through decode_utf8. Does anyone have a better method? >> >> Here's what I use: >> >> package CGI::as_utf; >> >> BEGIN >> { >> use strict; >> use warnings; >> use CGI; >> use Encode; >> >> { >> no warnings 'redefine'; >> my $param_org = \&CGI::param; >> >> my $might_decode = sub { >> my $p = shift; >> return ( !$p || ( ref $p && fileno($p) ) ) >> ? $p >> : eval { decode_utf8($p) } || $p; >> }; >> >> *CGI::param = sub { >> my $q = $_[0]; # assume object calls always >> my $p = $_[1]; >> >> goto &$param_org if scalar @_ != 2; >> >> return wantarray >> ? map { $might_decode->($_) } $q->$param_org($p) >> : $might_decode->( $q->$param_org($p) ); >> } >> } >> } >> >> 1; >> >> This does the right thing for file uploads, as well as handling scalar and >> list context. > > That looks useful, Rhesa. > > Is there a variation of it that makes sense to submit as patch for CGI.pm? > > Mark > > > > ##### CGI::Application community mailing list ################ > ## ## > ## To unsubscribe, or change your message delivery options, ## > ## visit: http://www.erlbaum.net/mailman/listinfo/cgiapp ## > ## ## > ## Web archive: http://www.erlbaum.net/pipermail/cgiapp/ ## > ## Wiki: http://cgiapp.erlbaum.net/ ## > ## ## > ################################################################ > > ##### CGI::Application community mailing list ################ ## ## ## To unsubscribe, or change your message delivery options, ## ## visit: http://www.erlbaum.net/mailman/listinfo/cgiapp ## ## ## ## Web archive: http://www.erlbaum.net/pipermail/cgiapp/ ## ## Wiki: http://cgiapp.erlbaum.net/ ## ## ## ################################################################