Re: utf8 encoding problem with plperlu

From: "Daniel Verite" <daniel(at)manitou-mail(dot)org>
To: ron(at)yellowbank(dot)com
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: utf8 encoding problem with plperlu
Date: 2015-07-15 15:57:45
Message-ID: 2fa13094-3d86-4db3-9332-b064bb66f9fa@mm
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

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

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Ronald Peterson 2015-07-15 18:20:09 Re: utf8 encoding problem with plperlu
Previous Message Charles Clavadetscher 2015-07-15 14:45:14 Re: [9.5] question about row level security