外部ソースからデータダンプをロードしていますが、一部の文字列には\uXXXX
、次のようなUTF8文字のシーケンスが含まれています。
\u017D\u010F\u00E1r nad S\u00E1zavou
のE''定数を使用して内容を確認できpsql
ますが、適切な値を返す関数/演算子が見つかりません。
PL / pgSQL関数を使用せずに、Unicodeエスケープを使用してこの文字列を通常のUTF8に変換できるかどうかを確認したいと思います。
外部ソースからデータダンプをロードしていますが、一部の文字列には\uXXXX
、次のようなUTF8文字のシーケンスが含まれています。
\u017D\u010F\u00E1r nad S\u00E1zavou
のE''定数を使用して内容を確認できpsql
ますが、適切な値を返す関数/演算子が見つかりません。
PL / pgSQL関数を使用せずに、Unicodeエスケープを使用してこの文字列を通常のUTF8に変換できるかどうかを確認したいと思います。
そのための組み込みの方法はないと思います。私が考えることができる最も簡単な方法は、避けたかったplpgsql関数です。
CREATE OR REPLACE FUNCTION str_eval(text, OUT t text)
LANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE AS
$func$
BEGIN
EXECUTE 'SELECT E''' || replace($1, '''', '''''') || ''''
USING $1
INTO t;
END
$func$;
更新されたバージョンはSQLiから保護し、高速でもあります。