函数主体如下:
CREATE OR REPLACE FUNCTION url_decode(input text) RETURNS text
LANGUAGE plpgsql IMMUTABLE STRICT AS $$
DECLARE
bin bytea = '';
byte text;
BEGIN
FOR byte IN (select (regexp_matches(input, '(%..|.)', 'g'))[1]) LOOP
IF length(byte) = 3 THEN
bin = bin || decode(substring(byte, 2, 2), 'hex');
ELSE
bin = bin || byte::bytea;
END IF;
END LOOP;
RETURN convert_from(bin, 'utf8');
END
$$;
使用示例:
postgres=# select url_decode('2019%e5%b9%b41%e6%9c%881%e6%97%a5%ef%bc%8c%e7%a5%9d%e5%a4%a7%e5%ae%b6%e5%9c%a8%e6%96%b0%e7%9a%84%e4%b8%80%e5%b9%b4%e9%87%8c%e5%b7%a5%e4%bd%9c%e9%a1%ba%e5%88%a9%e3%80%81%e5%ae%b6%e5%ba%ad%e5%b9%b8%e7%a6%8f%ef%bc%81');
url_decode
------------------------------------------------------
2019年1月1日,祝大家在新的一年里工作顺利、家庭幸福!
(1 row)
End~
本文从CSDN(点击查看原文)转载而来。不代表烟海拾贝立场,如若转载,请注明出处:https://somirror.com/3680.html