none
Encode de caracteres RRS feed

  • Pergunta

  • Pessoal

    Estou com um problema na codificação de caracteres porque estou recebendo um XML em uma aplicação ASP da seguinte maneira: "<root> .... </root>".

    Como posso codificar para o retorno ser os tags corretos "<root> .... </root>"?

    Se fosse o inverso poderia usar o HTMLEncode mas não sei se existe algo que faça o reverso.

     

    Grato

    sexta-feira, 26 de maio de 2006 13:23

Respostas

  • Garcia,

    No ASP.NET vc pode usar o Server.HTMLDecode(string) já no ASP 3.0 vc tem que escrever uma funcao para tal, segue a mesma:

    Function HTMLDecode(sText)
        Dim I
        sText = Replace(sText, "&quot;", Chr(34))
        sText = Replace(sText, "&lt;"  , Chr(60))
        sText = Replace(sText, "&gt;"  , Chr(62))
        sText = Replace(sText, "&amp;" , Chr(38))
        sText = Replace(sText, "&nbsp;", Chr(32))
        For I = 1 to 255
            sText = Replace(sText, "&#" & I & ";", Chr(I))
        Next
        HTMLDecode = sText
    End Function
     
    Se este post for util não esqueça de clicar no Sim. :)
    Sds,
    Diego
    sexta-feira, 26 de maio de 2006 17:58

Todas as Respostas

  • Oi Garcia

    Isto depende do encoding do arquivo xml que vc está lendo. Este KB da Microsoft explica direitinho:
    http://support.microsoft.com/default.aspx?scid=kb;en-us;308061

    []'s
    Fábio Alves

    sexta-feira, 26 de maio de 2006 13:30
  • Fábio

    A minha aplicação está em ASP e não tem como usar o Encode do .Net.

     

    Abraço

    sexta-feira, 26 de maio de 2006 13:35
  • Garcia,

    No ASP.NET vc pode usar o Server.HTMLDecode(string) já no ASP 3.0 vc tem que escrever uma funcao para tal, segue a mesma:

    Function HTMLDecode(sText)
        Dim I
        sText = Replace(sText, "&quot;", Chr(34))
        sText = Replace(sText, "&lt;"  , Chr(60))
        sText = Replace(sText, "&gt;"  , Chr(62))
        sText = Replace(sText, "&amp;" , Chr(38))
        sText = Replace(sText, "&nbsp;", Chr(32))
        For I = 1 to 255
            sText = Replace(sText, "&#" & I & ";", Chr(I))
        Next
        HTMLDecode = sText
    End Function
     
    Se este post for util não esqueça de clicar no Sim. :)
    Sds,
    Diego
    sexta-feira, 26 de maio de 2006 17:58
  • Diego

    Estava imaginando que teria que desenvolver alguma função para fazer isto. Agradeço pela ajuda.

    segunda-feira, 29 de maio de 2006 20:28
  • Diego, achei interessante o seu código...tentei so q preciso fazer o contrário...fazer Enconde...mas nao quero usar o comando Server.HMLEncode...pois quero Enconde de alguns especificos caracteres como:

        'sText = Replace(sText, "<", "&lt;")
        'sText = Replace(sText, ">", "&gt;")
        'sText = Replace(sText, "(", "&#40;")
        'sText = Replace(sText, ")", "&#41;")
        'sText = Replace(sText, "#", "&#35;")
        'sText = Replace(sText, "&", "&#38;")

    mas estou com dificuldades de fazer...poderia me dar uma ajuda ou me mostrar algum caminho...eu fiz esse codigo...

    Function HTMLEncode(sText)
        Dim I
        sText = Replace(sText, "<", "&lt;")
        sText = Replace(sText, ">", "&gt;")
        sText = Replace(sText, "(", "&#40;")
        sText = Replace(sText, ")", "&#41;")
        sText = Replace(sText, "#", "&#35;")
        sText = Replace(sText, "&", "&#38;")

        For I = 1 to 255
            sText = Replace(sText, I , Chr(I))
        Next
        HTMLEncode = sText
    End Function

    mas nao funcionou...pq?

    quarta-feira, 9 de agosto de 2006 11:41
  • Olá

    Neste caso você não precisa fazer isto porque já existe uma função ASP pronta:

    Ex:

    <%Response.Write Server.HTMLEncode("A tag de tabela <Table>")%>

    Resultado:

    A tag de tabela &lt;Table&gt;

     

    Abraço

    quarta-feira, 9 de agosto de 2006 17:38