Question

La chaîne codée utf contient ZWNJ (zéro largeur non menuisier) à l'extrémité et est stocké dans la base de données. Est-il possible de supprimer ce caractère lors de l'instruction select. J'ai essayé trim () mais ne fonctionne pas.

Était-ce utile?

La solution

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)

Autres conseils

Vous devez utiliser replace(your_column, 'Zwnj','') au lieu de trim ()

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top