我在varchar
列中有一些由不间断空格分隔的值(urlencoded %A0
而不是%20
)。我试图用空格替换它们,但似乎无法正确使用语法:
select regexp_replace('hello world', E'\xa0', ' ')
在Postgres regexp_replace
函数中对字符进行编码的正确方法是什么?或者,有更好的方法来进行更换吗?
答案 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 A0
或A0
)更实际:
select replace('456321 ', E'\u00a0', '') -- value is E'456321\u00a0'