替换 Postgres 中的不间断空格 (%A0)

Mat*_*pel 1 postgresql

我在一个varchar列中有一些由不间断空格分隔的值(urlencoded%A0而不是%20)。我试图用空格替换它们,但似乎无法正确使用语法:

select regexp_replace('hello world', E'\xa0', ' ')
Run Code Online (Sandbox Code Playgroud)

在 Postgresregexp_replace函数中编码字符的正确方法是什么?或者,有没有更好的方法来进行替换?

Jon*_*ard 6

替换'\xa0'对我不起作用,可能是因为我的字符串是 UTF-8 而不是 Latin1 或其他字符直接编码为A0. (以 UTF-8U+A0字节编码C2 A0

我发现将其替换为代码点 ( U+A0) 而不是编码字节 ( C2 A0or A0)更实用:

select replace('456321 ', E'\u00a0', '')  -- value is E'456321\u00a0'
Run Code Online (Sandbox Code Playgroud)