错误地存储UTF-8值在9.1的Postgres 我导入数据只(无结构)成UTF-8 DB包含没有记录Postgres的导入时
psql -l
给我
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
glyph | glyph | UTF8 | en_GB.UTF-8 | en_GB.UTF-8 | =Tc/glyph +
| | | | | glyph=CTc/glyph
的表看起来像这样:从我的SQL文件
-- Table: sign
-- DROP TABLE sign;
CREATE TABLE sign
(
id serial NOT NULL,
sign_ref character varying(150) NOT NULL,
CONSTRAINT pk_sign PRIMARY KEY (id)
)
WITH (
OIDS=FALSE
);
ALTER TABLE sign
OWNER TO glyph;
-- Index: ix_sign_sign_ref
-- DROP INDEX ix_sign_sign_ref;
CREATE UNIQUE INDEX ix_sign_sign_ref
ON sign
USING btree
(sign_ref COLLATE pg_catalog."default");
价值加入:
命令:psql -h localhost -d glyph -U glyph -f import.sql
START TRANSACTION;
SET standard_conforming_strings=off;
SET escape_string_warning=off;
SET CONSTRAINTS ALL DEFERRED;
INSERT INTO "sign" VALUES (29585,'DE₂');
COMMIT;
但是,这已被转换为数据库中的“DEâ”。 我做错了什么?
编辑:
select convert_to(
(select sign_ref from sign where id = 29585), 'utf8');
给我:
DE\303\242\302\202\302\202
你可以添加'选择convert_to(sign_ref,“utf-8”)的结果'作为什么在以字节为单位的分贝证据? – 2014-09-24 15:24:26
@DanielVérité完成,请参阅编辑。 – urschrei 2014-09-24 15:36:57