我不得不使用此查詢的問題:解碼十六進制在PostgreSQL的 - 遇到錯誤「奇數個數字」
select decode(to_hex(ascii('ل')::int),'hex')
當我執行它,我得到:
ERROR: invalid hexadecimal data: odd number of digits
我不得不使用此查詢的問題:解碼十六進制在PostgreSQL的 - 遇到錯誤「奇數個數字」
select decode(to_hex(ascii('ل')::int),'hex')
當我執行它,我得到:
ERROR: invalid hexadecimal data: odd number of digits
可能是它更簡單使用像這樣的東西:
select encode('ل','escape');
decode(..., 'hex')
並不意味着將此十六進制數字轉換爲某物。十六進制編碼是字節的特定編碼格式,每個八位字節需要兩個十六進制數字。另一方面,to_hex
將整數轉換爲十六進制表示形式,並且可能具有偶數或奇數個數字。
所以答案是,你不能這樣做(沒有一些手動修正)。目前還不清楚你爲什麼要這麼做。它看起來像你可以做'ل'::bytea
,但這可能不是你想要的。
稍微偏離主題,但我覺得很棒,我可以將該行復制並粘貼到我的終端並重現結果,包括非ASCII字符。 –