Aplicando a codificação UTF-8 com DecodeUTF8 e EncodeUTF8 – Maratona AdvPL e TL++ 138

Nesse vídeo demonstraremos a utilização das funções DecodeUTF8 e EncodeUTF8 que servem para manipular uma string aplicando ou convertendo usando a codificação UTF-8.

Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:

//Bibliotecas
#Include "TOTVS.ch"

/*/{Protheus.doc} User Function zExe138
Exemplo para transformar um texto com a codificação UTF-8
@type Function
@author Atilio
@since 16/12/2022
@see https://tdn.totvs.com/display/tec/DecodeUTF8 e https://tdn.totvs.com/display/tec/EncodeUTF8
@obs 
    Função DecodeUTF8
    Parâmetros
        + cText        , Caractere    , String codificada em UTF-8 que será convertida
        + cEncoding    , Caractere    , Indica qual é o encoding do retorno
    Retorno
        + cRet         , Caractere    , Retorna a string convertida

    Função EncodeUTF8
    Parâmetros
        + cText        , Caractere    , String que será convertida para UTF-8
        + cEnconding   , Caractere    , Indica qual é o enconding original (por padrão é o cp1252)
    Retorno
        + cRet         , Caractere    , Retorna a string convertida em UTF-8

    **** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao ****
/*/

User Function zExe138()
    Local aArea       := FWGetArea()
    Local cTexto      := ""
    Local cEncode     := ""
    Local cDecode     := ""
    Local cMensagem   := ""
    
    //Monta o texto e faz a conversão
    cTexto := "A aranha arranha a rã. A rã arranha a aranha. Nem a aranha arranha a rã. Nem a rã arranha a aranha."
    cEncode := EncodeUTF8(cTexto,  "cp1252")
    cDecode := DecodeUTF8(cEncode, "cp1252")

    //Monta a mensagem que será exibida
    cMensagem := "Texto Original: '" + cTexto + "'" + CRLF + CRLF
    cMensagem += "CP1252 para UTF8: '" + cEncode + "'" + CRLF + CRLF
    cMensagem += "UTF8 para CP1252: '" + cDecode + "'"
    FWAlertInfo(cMensagem, "Exemplo EncodeUTF8 e DecodeUTF8")

    FWRestArea(aArea)
Return

Bom pessoal, por hoje é só.

Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

Deixe uma resposta

Terminal de Informação