On Fri, Dec 17, 2010 at 18:22, David E. Wheeler <david@kineticode.com> wrote:
> On Dec 17, 2010, at 5:04 PM, David E. Wheeler wrote:
>
>>> see? Either uri_unescape() should be decoding that utf8() or you need
>>> to do it *after* you call uri_unescape(). Hence the maybe it could be
>>> considered a bug in uri_unescape().
>>
>> Agreed.
>
> On second thought, no. You can in fact encode anything in a URI. URI::Escape can't know what to decode to. So *I
believe*it just unescapes the raw bytes. It might be handy for it to have a new function, though, to complement its
uri_escape_utf()function:
>
> sub uri_unescape_utf8 { Encode::decode_utf8(uri_unescape(@_)) }
>
> Just to make things a bit clearer.
>
> But that's a separate issue from the, erm, inconsistency with which PL/Perl treats encoding and decoding of its
inputsand outputs.
Yay! So I think we can finally agree that for Oleg's original test
case postgres was getting right. I hope ? :)