我从外部源加载数据转储,一些字符串包含UTF8字符的\uXXXX
序列,如下所示:
\u017D\u010F\u00E1r nad S\u00E1zavou
我可以在psql
中使用E''常量检查内容,但找不到任何函数/运算符来返回正确的值。
我想问一下,如果可以将带有unicode转义的字符串转换为正常的UTF8 而不使用使用PL / pgSQL函数吗?
答案 0 :(得分:2)
我认为没有内置的方法。我能想到的最简单的方法是你想避免的plpgsql函数:
CREATE OR REPLACE FUNCTION str_eval(text, OUT t text) AS
$func$
BEGIN
EXECUTE 'SELECT E''' || replace($1, '''', '''''') || ''''
USING $1
INTO t;
END
$func$ LANGUAGE plpgsql IMMUTABLE STRICT;
更新版本可以防范SQLi并且速度更快。