From: | Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> |
---|---|
To: | ron(at)yellowbank(dot)com |
Cc: | Daniel Verite <daniel(at)manitou-mail(dot)org>, "pgsql-general(at)postgresql(dot)org >> PG-General Mailing List" <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: utf8 encoding problem with plperlu |
Date: | 2015-07-15 18:28:57 |
Message-ID: | CAFj8pRAVngaX9S2DMURB-s2+mDbiPiS9U0uJMCK1kaCgM8eXtg@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
2015-07-15 20:20 GMT+02:00 Ronald Peterson <ron(at)hub(dot)yellowbank(dot)com>:
> That's interesting. What I'm really doing, instead of the second elog
> statement, is this:
>
> $ret = $ldap->modify( $dn,
> replace => {
> unicodePwd => $mspass
> } );
>
> This does work for strings that don't contain consecutive zeroes. I'm not
> really passing the string to PostgreSQL, but to Net::LDAP, but it must hit
> PostgreSQL anyway? Active Directory requires this encoding, so I'm not
> sure what to do here.
>
I had some issues, when I used some Perl libraries with UTF strings - some
requires, some not UTF flag in string. And Postgres didn't well set thist
UTF flag well.
http://blog.endpoint.com/2014/02/dbdpg-utf-8-perl-postgresql.html
Maybe you have similar issue - on server side.
Pavel
>
>
> On Wed, Jul 15, 2015 at 11:57 AM, Daniel Verite <daniel(at)manitou-mail(dot)org>
> wrote:
>
>> Ronald Peterson wrote:
>>
>> > # 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?
>>
>> When replacing the literal "double00" with "foobar" in your function,
>> the same error occurs for me:
>>
>> test=# select doublezero();
>> INFO: foobar
>> CONTEXT: PL/Perl function "doublezero"
>> ERROR: invalid byte sequence for encoding "UTF8": 0x00 at line 6.
>> CONTEXT: fonction PL/Perl « doublezero »
>>
>> Anyway it's not clear what you expect. PG doesn't support UTF-16,
>> and even if it did, it wouldn't accept such strings when the current
>> encoding is UTF-8.
>> If Active Directory wants UTF-16LE, you have to do that conversion, but
>> don't pass the result back to postgres in this format.
>>
>>
>> Best regards,
>> --
>> Daniel
>> PostgreSQL-powered mail user agent and storage:
>> http://www.manitou-mail.org
>>
>
>
>
> --
> -R-
>
>
>
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Ronald Peterson | 2015-07-15 19:31:35 | Re: utf8 encoding problem with plperlu |
Previous Message | Ronald Peterson | 2015-07-15 18:20:09 | Re: utf8 encoding problem with plperlu |