Histórico da Página
...
Converte uma string de origem de um encoding (code-page) conhecido para a codificação UTF-8 ( 8-bit Unicode Transformation Format ).
Sintaxe
Bloco de código | ||
---|---|---|
| ||
EncodeUtf8( < cText >, < cEncoding > ) |
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
---|---|---|---|---|
cText | caractere | Indica a string (buffer) que será convertida para o formato UTF-8. A string usada como parâmetro deve atender à codificação CP1252. | X | |
cEncoding | caractere | Indica qual o encoding (code-page) do buffer original passado em cText. O valor padrão para o parâmetro é "cp1252". |
Retorno
Nome | Tipo | Descrição |
---|---|---|
cRet | caractere | Retorna a string no formato UTF-8. |
Observações
- Os valores possíveis para o parâmetro encoding são aqueles utilizados pela biblioteca iconv. Pode-se visualizar o conjunto de valores a partir do executável binário gerado pela biblioteca iconv pelo comando: iconv -l. Alguns dos valores possíveis são "cp1252", "cp1251", "iso8859-1".
- Existem determinados códigos na tabela ASCII que não fazem parte da tabela CP1252, segue abaixo :
ASCII 129
ASCII 141
ASCII 143
ASCII 144
ASCII 157 - Caso a função EncodeUTF8() seja chamada onde o parâmetro contém qualquer um destes caracteres para conversão, será registrado no log de console do TOTVSAppServer a mensagem "*** Warning - Invalid conversion from cp1252 to utf-8", e a função retornará NIL ( Nulo ), pois nenhum destes códigos ASCII faz parte da tabela de codificação CP1252. Em sistemas legados do Microsoft DOS, que utilizavam a codificação CP437 e/ou CP850, estes códigos representavam as letras "ü", "ì","Å","É" e "¥", respectivamente.
- A tabela de codificação CP1252 contempla a representação gráfica dos caracteres da lista acima, porém usando um outros códigos ASCII : A letra ü ( u minísculo com trema ) é representada pelo código ASCII 252, ì ( i minúsculo com crase ) é representado por ASCII 236, Å ( A maiúsculo com anel ) é representado por ASCII 197, É ( E maiúsculo com acento agudo ) é representado por ASCII 201, e o simbolo Yen é representado por ASCII 165.
- Estes caracteres podem ser encontrados em tabelas de dados, onde os dados são provedientes de sistemas legados, ou importados de arquivos texto ASCII, que representam os dados utilizando uma página de código do DOS ( CP437 e/ou CP850 ).
Exemplos
Bloco de código | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
#define CRLF Chr(13) + Chr(10) User Function Exemplo() Local cTexto := "" Local cEncodeUTF8 := "" Local cDecodeUTF8 := "" Local cMensagem := "" cTexto := "à noite, vovô kowalsky vê o ímã cair no pé do pingüim " cTexto += "queixoso e vovó põe açúcar no chá de tâmaras do jabuti feliz." cEncodeUTF8 := EncodeUTF8(cTexto, "cp1252") cDecodeUTF8 := DecodeUTF8(cEncodeUTF8, "cp1252") cMensagem := "Pangrama origem: [" + cTexto + "]" cMensagem += CRLF + "Texto -> UTF8: [" + cEncodeUTF8 + "]" cMensagem += CRLF + "UTF8 -> Texto: [" + cDecodeUTF8 + "]" MsgInfo(cMensagem, "Exemplo") // Brasil em Russo cTexto := chr(193)+chr(240)+chr(224)+chr(231)+chr(232)+chr(235)+chr(201)+chr(235)+chr(255) cEncodeUTF8 := EncodeUTF8(cTexto, "cp1251") cDecodeUTF8 := DecodeUTF8(cEncodeUTF8, "cp1251") cMensagem := "Pangrama origem: [" + cTexto + "]" cMensagem += CRLF + "Texto -> UTF8: [" + cEncodeUTF8 + "]" cMensagem += CRLF + "UTF8 -> Texto: [" + cDecodeUTF8 + "]" MsgInfo(cMensagem, "Exemplo") Return |
Abrangência
Microsiga Protheus 8.11 , Protheus 10, Protheus 11
Veja também
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas