David Graff wrote: > Looking at the source for CGI::Util, it appears that disabling the > utf8 flag is intended as a feature, not a bug:
I think that is just due to the low level nature of escape(), because escape() doesn't care about characters, just byte sequences. > I would guess that > there is no way for "unescape" to "know" when a given input string > shouldbe decoded as utf8 data. Only the calling app can know that, I'd pretty much agree. So is there some way that I have missed to tell CGI.pm how the query string should be decoded? Or some obvious way to extend CGI.pm that I haven't thought of? I'd like a way to tell CGI.pm how to interpret characters once it has reconstructed the byte sequence. Then I'd like $query->param('name') to always give me a scalar with utf8 characters and the utf8 flag set. A string in a scalar which doesn't have the utf8 flag set isn't that useful _in perl_, right? (That is, unless it's ascii only.) Perl wouldn't know how to interpret characters. The application might, but to Perl it's unstructured binary data. -Stephen