Re: utf8 encoding problem with plperlu

Поиск
Список
Период
Сортировка
От Adrian Klaver
Тема Re: utf8 encoding problem with plperlu
Дата
Msg-id 55A66F6F.8030003@aklaver.com
обсуждение исходный текст
Ответ на utf8 encoding problem with plperlu  (Ronald Peterson <ron@hub.yellowbank.com>)
Список pgsql-general
On 07/15/2015 07:14 AM, Ronald Peterson wrote:
> The following short function illustrates a problem I'm having with the
> plperlu module.
>
> CREATE OR REPLACE FUNCTION
> doublezero ()
> RETURNS VOID
> AS $$
> use Encode qw/encode decode/;
> $pass = "double00";
> elog( INFO, "$pass" );
> $mspass = encode( 'UTF-16LE', qq("$pass") );
> elog( INFO, "$mspass" );
> $$ LANGUAGE plperlu
> STRICT;
>
> # select * from doublezero();
> INFO:  double00
> CONTEXT:  PL/Perl function "doublezero"
> ERROR:  invalid byte sequence for encoding "UTF8": 0x00 at line 8,
> <DATA> line 558.
> CONTEXT:  PL/Perl function "doublezero"
>
> I don't understand this.  I need to pass $mspass to Active Directory,
> and it the encoding is exactly as it should be, which is to say, it
> works for strings that don't include two consecutive zeros.  Is this a bug?

I am not a Perl user, but the question that came to mind is-

Does this:

mspass = encode( 'UTF-16LE', qq("$pass") )

work in Perl outside of plperlu?

>
> -R-
>
>
>
>


--
Adrian Klaver
adrian.klaver@aklaver.com


В списке pgsql-general по дате отправления:

Предыдущее
От: Ronald Peterson
Дата:
Сообщение: utf8 encoding problem with plperlu
Следующее
От: "Charles Clavadetscher"
Дата:
Сообщение: Re: [9.5] question about row level security