Remover indicador ordinal

Giordano,

Hoje as funções realmente só tratam acentos, demais caracteres especiais normalmente são tratados pontualmente, alterar essas funções com mais de uma década para efetuar tal tratamento poderia levar a cenários BEM complicados... Famoso legado!

Enfim, recomendo você encapsular a função FWNoAccent e adicionar os demais comportamentos desejados, assim como recomendo um outro DEV a fazer na AllTrim.

Algo nessa ideia:

namespace utils.string

//-------------------------------------------------------------------
/*{Protheus.doc} u_removeSpecialChars
Efetua a removação de acentos e caracteres especiais

@param cValue String de entrada

@return cValue String de saída já com a remoção dos devidos caracteres

@author Daniel Mendes
@since 08/10/2020
@version 1.0
*/
//-------------------------------------------------------------------
function u_removeSpecialChars(cValue)
cValue := FWNoAccent(cValue)
cValue := StrTran(cValue, "º", "")
return cValue

No exemplo do AllTrim, eu mantive a compatibilidade com o binário 13, se for necessário, já nesse exemplo será necessário ter um binário 17 ou superior.