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

时间:2016-04-25 19:55:28

标签: postgresql

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

select regexp_replace('hello world', E'\xa0', ' ')

在Postgres regexp_replace函数中对字符进行编码的正确方法是什么?或者,有更好的方法来进行更换吗?

2 个答案:

答案 0 :(得分:2)

这可能对您有所帮助

select replace('Hello world', '\xa0', '')

参考Postgresql (Current) Section 9.4. String Functions and Operators

答案 1 :(得分:1)

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

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

select replace('456321 ', E'\u00a0', '')  -- value is E'456321\u00a0'