2016-04-25 38 views
0

我在varchar列中獲得了一些由不間斷空格分隔的值(urlencoded %A0而不是%20)。我試圖用空格來代替它們,但似乎無法得到正確的語法:替換Postgres中的不間斷空格(%A0)

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

什麼是在一個Postgres regexp_replace功能編碼字符的正確方法?或者,有沒有更好的方法來做替換?

+0

您不需要'regexp_replace()'。 'replace()'就夠了 –

+0

'0xA0'是ISO-8859-1(AKA Latin-1)中的一個非空格,你確定這是數據庫的正確編碼嗎? –

+0

@a_horse_with_no_name你可以分享可以與字符代碼一起工作的語法嗎?這是我遇到麻煩的部分。 –

回答

0

更換'\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' 
+0

有趣的一點喬納森。謝謝 – pnorton