Segue um exemplo de função para remover caracteres especiais de textos.
function specialChar returns character (INPUT pOrigem as character):
define variable cNovo as character no-undo.
define variable i as integer no-undo.
define variable iAsc as integer no-undo.
define variable cPosicao as character no-undo.
define variable cTratado as character no-undo.
assign cNovo = pOrigem.
repeat i = 1 to length(cNovo):
assign
cPosicao = substring(cNovo,i,1)
cTratado = "".
if asc(cPosicao) > 127 then do:
repeat iAsc = 65 to 90: /* A..Z */
if compare(cPosicao, "eq" , chr(iAsc), "case-sensitive") then assign cTratado = chr(iAsc).
end.
repeat iAsc = 97 to 122: /* a..z */
if compare(cPosicao, "eq" , chr(iAsc), "case-sensitive") then assign cTratado = chr(iAsc).
end.
if cTratado <> "" then assign substring(cNovo,i,1) = cTratado.
end.
end.
return cNovo.
end.
MESSAGE specialChar("Programação | PROGRAMAÇÃO")
VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
Resultado: