Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Bloco de código
#define  NORMALFORM_TONFC  0
#define  NORMALFORM_TONFD  1
#define  NORMALFORM_TONFKC  2
#define  NORMALFORM_TONFKD  3

Static Function hex2asc(cHexStr)
  Local cRet := ''
  Local nI 
  For nI := 1 to len(cHexStr) step 2 
    cRet += chr(__HEXTODEC(substr(cHexStr,nI,2)))
  Next 
Return cRet
 
User Function 9581672356
    // String: "Soluções e ações" na NFD
    Local sInput := "536F6C7563CCA76FCC8365732065204163CCA76FCC83657300"
    // String: "Soluções e ações" na NFC
    Local sExpected := "536F6C75C3A7C3B5657320652041C3A7C3B5657300"
    Local sConvStr := ''
    
    // Conversões para o formato
    sInput := hex2asc(sInput)
    sExpected := hex2asc(sExpected)
    
    // Conversão da forma normal do UTF-8
    oUni1 := tUnicode():New()
    oUni1:Normalize( sInput, sConvStr, NORMALFORM_TONFC )
    
    // Compara para verificar se está de acordo com o esperado
    IF (sConvStr <> sExpected)
	)
        Conout("##### Conversão FALHA")
        Return -1
    ELSE
	
        Conout("##### Conversão OK")
        Return 0
    ENDIF
Return