utf 编码的字符串末尾包含 Zwnj(零宽度非连接符)并存储在数据库中。是否可以在选择语句期间删除该字符。我尝试了 trim() 但不起作用。
问问题
2263 次
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 回答