Árvore de páginas

Converte uma string de origem em CP1252 ( Windows 1252 code-page ) para a codificação UTF-16 ( 16-bit Unicode Transformation Format ).

Sintaxe

EncodeUtf16( < cText >, [ nEndian ] )

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

cText

caractere

Indica a string que será convertida para o formato UTF-16. A string usada como parâmetro deve atender à codificação CP1252.

X


nEndian

numérico

Indica o endianess do texto de saida, podendo ser: 1 - Big-Endian (padrão) e 2 - Little-Endian.



Retorno

Nome

Tipo

Descrição

cRet

caractere

Retorna uma nova string no formato UTF-16.

Observações

  • 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 EncodeUTF16() 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 to utf-16", 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

Exemplo 1
#define CRLF Chr(13) + Chr(10)
//+----------------------------------------------------------------------------+
//|Exemplo de uso da função EncodeUTF16 e DecodeUTF16                          |
//+----------------------------------------------------------------------------+
User Function Exemplo4()
  Local cTexto := ""
  Local cEncodeUTF16 := ""
  Local cDecodeUTF16 := ""
  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." 
  cEncodeUTF16 := EncodeUTF16(cTexto) 
  cDecodeUTF16 := DecodeUTF16(cEncodeUTF16) 
  cMensagem := "Pangrama origem: [" + cTexto + "]" 
  cMensagem1 := "Texto -> UTF16: [" + cEncodeUTF16 + "]" 
  cMensagem2 := "UTF16 -> Texto: [" + cDecodeUTF16 + "]"
  MsgInfo(cMensagem, "Exemplo")
  MsgInfo(cMensagem1, "Exemplo")
  MsgInfo(cMensagem2, "Exemplo")
Return

Abrangência

Microsiga Protheus 8.11 , Protheus 10, Protheus 11

Veja também