Re: psql '\copy to' and unicode escapes

From: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
To: Steven Hirsch <snhirsch(at)gmail(dot)com>
Cc: "pgsql-generallists(dot)postgresql(dot)org" <pgsql-general(at)lists(dot)postgresql(dot)org>
Subject: Re: psql '\copy to' and unicode escapes
Date: 2018-02-26 17:05:37
Message-ID: CAKFQuwbpm1QO20k2X8_qRnq1up0naFSF3mbLEp+onxKSc8L+ew@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Mon, Feb 26, 2018 at 9:53 AM, Steven Hirsch <snhirsch(at)gmail(dot)com> wrote:

> I fear that I'm missing something very obvious, but I cannot find a syntax
> that permits me to use an escaped hexadecimal representation in a CSV file
> and have that representation interpreted as the equivalent unicode
> character when inserting into the database.
>

​There isn't one - copy treats input as literals and performs basically no
processing on them.​ The system writing the csv file would have to
actually encode the UTF-8 symbol, not the string of the code point,
directly into the document (i.e., a capable viewer would display whatever
00b0 is on-screen, or a placeholder if it is a non-printable character).

INSERT and COPY are two totally different animals:

INSERT INTO tbl (t) VALUES (trim(' jdjd ')); -- stores jdjd, but
putting trim(' jdjd ') in a csv file and you would store "trim('
jdjd ')"

David J.

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Marwan Almaymoni 2018-02-26 19:45:25 Parallel Aware
Previous Message Steven Hirsch 2018-02-26 16:53:15 psql '\copy to' and unicode escapes