BUG #15261: Insert binary data in bytea rejected due to UTF-8 encoding errors

Started by PG Bug reporting formalmost 8 years ago2 messagesbugs
Jump to latest
#1PG Bug reporting form
noreply@postgresql.org

The following bug has been logged on the website:

Bug reference: 15261
Logged by: Brice André
Email address: brice@famille-andre.be
PostgreSQL version: 9.6.7
Operating system: debian stretch
Description:

Dears,

I have a database using UTF-8 encoding and, in which I have bytea columns
where I store binary data.

I followed instructions in
https://www.postgresql.org/docs/9.6/static/datatype-binary.html to encode
the binary data, but it is still rejected due to a "ERROR: invalid byte
sequence for encoding "UTF8"" error.

I wrote a small script that reproduces the problem in a small database. The
script can be simply copy-pasted in a psql session:

CREATE DATABASE test WITH TEMPLATE = template0 ENCODING = 'UTF8' LC_COLLATE
= 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8';
\connect test;
CREATE TABLE test (test bytea);
insert into test (test) values (E'\xC744'::bytea);

Regards,

Brice

#2Gary Doades
gpd@gpdnet.co.uk
In reply to: PG Bug reporting form (#1)
RE: BUG #15261: Insert binary data in bytea rejected due to UTF-8 encoding errors

I have a database using UTF-8 encoding and, in which I have bytea columns
where I store binary data.

I followed instructions in
https://www.postgresql.org/docs/9.6/static/datatype-binary.html to encode
the binary data, but it is still rejected due to a "ERROR: invalid byte sequence
for encoding "UTF8"" error.

I wrote a small script that reproduces the problem in a small database. The
script can be simply copy-pasted in a psql session:

CREATE DATABASE test WITH TEMPLATE = template0 ENCODING = 'UTF8'
LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8'; \connect test;
CREATE TABLE test (test bytea); insert into test (test) values
(E'\xC744'::bytea);

You'll notice in the link you provided for your example that you need an extra backslash ('\') for the escape format you are using.

Regards,
Gary.