Funções de string no Postgres não reconhecem espaços não separáveis como espaços em branco, nem ao cortar nem ao usar expressões regulares:
select 'x' || test || 'x', 'x' || trim(test) || 'x', 'x' || regexp_replace(test, '\s+', '') || 'x' from
(values
(''),
(' '),
(' y '),
('s s s s')
) as foo(test)
(Não tenho certeza se o não separável ( ) sobrevive no código acima, mas as duas últimas linhas contêm nbsp) Demonstração do Onecompiler SQL
É uma coisa do Postgres não lidar com isso, ou é um bug? Eu sei de char(160) para nbsp, mas preferiria uma maneira geral de remover todos os espaços em branco
A ordenação em uso é en_US.utf8
Sim, o espaço inseparável (
char(160)
) não é um espaço em branco.Mas você pode especificar que seus caracteres personalizados sejam removidos do texto para
TRIM()
a função. – Akina