SET TERM ^ ;

CREATE OR ALTER function FN_UNICODE_TO_UTF8 (
    TEXTO blob sub_type 1 segment size 80
)
returns blob sub_type 1 segment size 80
AS
DECLARE VARIABLE RETORNO BLOB SUB_TYPE 1 SEGMENT SIZE 80;
BEGIN

    RETORNO = TEXTO;

    RETORNO = REPLACE(RETORNO, '\u00e1', 'á');
    RETORNO = REPLACE(RETORNO, '\u00e0', 'à');
    RETORNO = REPLACE(RETORNO, '\u00e2', 'â');
    RETORNO = REPLACE(RETORNO, '\u00e3', 'ã');
    RETORNO = REPLACE(RETORNO, '\u00e4', 'ä');
    RETORNO = REPLACE(RETORNO, '\u00c1', 'Á');
    RETORNO = REPLACE(RETORNO, '\u00c0', 'À');
    RETORNO = REPLACE(RETORNO, '\u00c2', 'Â');
    RETORNO = REPLACE(RETORNO, '\u00c3', 'Ã');
    RETORNO = REPLACE(RETORNO, '\u00c4', 'Ä');
    RETORNO = REPLACE(RETORNO, '\u00e9', 'é');
    RETORNO = REPLACE(RETORNO, '\u00e8', 'è');
    RETORNO = REPLACE(RETORNO, '\u00ea', 'ê');
    RETORNO = REPLACE(RETORNO, '\u00ea', 'ê');
    RETORNO = REPLACE(RETORNO, '\u00c9', 'É');
    RETORNO = REPLACE(RETORNO, '\u00c8', 'È');
    RETORNO = REPLACE(RETORNO, '\u00ca', 'Ê');
    RETORNO = REPLACE(RETORNO, '\u00cb', 'Ë');
    RETORNO = REPLACE(RETORNO, '\u00ed', 'í');
    RETORNO = REPLACE(RETORNO, '\u00ec', 'ì');
    RETORNO = REPLACE(RETORNO, '\u00ee', 'î');
    RETORNO = REPLACE(RETORNO, '\u00ef', 'ï');
    RETORNO = REPLACE(RETORNO, '\u00cd', 'Í');
    RETORNO = REPLACE(RETORNO, '\u00cc', 'Ì');
    RETORNO = REPLACE(RETORNO, '\u00ce', 'Î');
    RETORNO = REPLACE(RETORNO, '\u00cf', 'Ï');
    RETORNO = REPLACE(RETORNO, '\u00f3', 'ó');
    RETORNO = REPLACE(RETORNO, '\u00f2', 'ò');
    RETORNO = REPLACE(RETORNO, '\u00f4', 'ô');
    RETORNO = REPLACE(RETORNO, '\u00f5', 'õ');
    RETORNO = REPLACE(RETORNO, '\u00f6', 'ö');
    RETORNO = REPLACE(RETORNO, '\u00d3', 'Ó');
    RETORNO = REPLACE(RETORNO, '\u00d2', 'Ò');
    RETORNO = REPLACE(RETORNO, '\u00d4', 'Ô');
    RETORNO = REPLACE(RETORNO, '\u00d5', 'Õ');
    RETORNO = REPLACE(RETORNO, '\u00d6', 'Ö');
    RETORNO = REPLACE(RETORNO, '\u00fa', 'ú');
    RETORNO = REPLACE(RETORNO, '\u00f9', 'ù');
    RETORNO = REPLACE(RETORNO, '\u00fb', 'û');
    RETORNO = REPLACE(RETORNO, '\u00fc', 'ü');
    RETORNO = REPLACE(RETORNO, '\u00da', 'Ú');
    RETORNO = REPLACE(RETORNO, '\u00d9', 'Ù');
    RETORNO = REPLACE(RETORNO, '\u00db', 'Û');
    RETORNO = REPLACE(RETORNO, '\u00e7', 'ç');
    RETORNO = REPLACE(RETORNO, '\u00c7', 'Ç');
    RETORNO = REPLACE(RETORNO, '\u00f1', 'ñ');
    RETORNO = REPLACE(RETORNO, '\u00d1', 'Ñ');
    RETORNO = REPLACE(RETORNO, '\u0026', '&');

    RETURN TRIM(RETORNO);
END
^

SET TERM ; ^


