0

utf 编码的字符串末尾包含 Zwnj(零宽度非连接符)并存储在数据库中。是否可以在选择语句期间删除该字符。我尝试了 trim() 但不起作用。

4

2 回答 2

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)
于 2011-01-01T21:49:33.070 回答
0

您需要使用replace(your_column, 'Zwnj','')而不是 trim()

于 2010-12-28T10:25:52.883 回答