utf编码的字符串末尾包含Zwnj(零宽度非连接符)并存储在数据库中。 是否可以在select语句中删除该字符。我尝试了trim()但是没有用。
答案 0 :(得分:2)
CREATE TABLE test (x text);
INSERT INTO test VALUES (E'abc');
INSERT INTO test VALUES (E'foo\u200C'); -- U+200C = ZERO WIDTH NON-JOINER
SELECT x, octet_length(x) FROM test;
x │ octet_length
─────┼──────────────
abc │ 3
foo │ 6
(2 rows)
CREATE TABLE test2 AS SELECT replace(x, E'\u200C', '') AS x FROM test;
SELECT x, octet_length(x) FROM test2;
x │ octet_length
─────┼──────────────
abc │ 3
foo │ 3
(2 rows)
答案 1 :(得分:0)
您需要使用replace(your_column, 'Zwnj','')
代替trim()