我在varchar
列中獲得了一些由不間斷空格分隔的值(urlencoded %A0
而不是%20
)。我試圖用空格來代替它們,但似乎無法得到正確的語法:替換Postgres中的不間斷空格(%A0)
select regexp_replace('hello world', E'\xa0', ' ')
什麼是在一個Postgres regexp_replace
功能編碼字符的正確方法?或者,有沒有更好的方法來做替換?
我在varchar
列中獲得了一些由不間斷空格分隔的值(urlencoded %A0
而不是%20
)。我試圖用空格來代替它們,但似乎無法得到正確的語法:替換Postgres中的不間斷空格(%A0)
select regexp_replace('hello world', E'\xa0', ' ')
什麼是在一個Postgres regexp_replace
功能編碼字符的正確方法?或者,有沒有更好的方法來做替換?
這可能會幫助你
select replace('Hello world', '\xa0', '')
參考Postgresql (Current) Section 9.4. String Functions and Operators
不知道爲什麼,但這個表達式並沒有取代我的字符串中的u + a0。 –
更換'\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'
有趣的一點喬納森。謝謝 – pnorton
您不需要'regexp_replace()'。 'replace()'就夠了 –
'0xA0'是ISO-8859-1(AKA Latin-1)中的一個非空格,你確定這是數據庫的正確編碼嗎? –
@a_horse_with_no_name你可以分享可以與字符代碼一起工作的語法嗎?這是我遇到麻煩的部分。 –