Pergunta

Tenho um pequeno problema: estou escrevendo para responder conteúdo do arquivo e devolvê -lo ao cliente como uma resposta AJAX.
Mas ocorreu uma substituição de HTML: de > para > etc ...
O que tenho que fazer para fazer essa substituição?

res.setHeader( "Cache-Control", "must-revalidate, post-check=0, pre-check=0" );
res.setHeader( "Pragma", "public" );
res.setContentType( "text/html" );

Tia

atualizar

//    import com.ibm.useful.http.PostData;
        PostData pd = new PostData( req );
        final FileData data;

    try {
        data = pd.getFileData( "sqlFile" );

    ByteArrayOutputStream buf = new ByteArrayOutputStream();
    for ( byte b : data.getByteData() ) {
       buf.write( b );
    }
    res.getWriter().print( buf.toString() );
}

Eu assisti buf.toString() através do depurador. Está tudo bem aí. A substituição vai além. mas onde...

Foi útil?

Solução

Os caracteres especiais HTML foram escapados para Entidades HTML.

Se você é claro Que isso aconteceu logo depois que você o escreveu para a resposta e logo antes dos dados de resposta chegarem ao cliente, há possivelmente um filtro na cadeia que escapou das entidades HTML por algum motivo. Verifique os filtros declarados em web.xml e ajustar o url-pattern se necessário.

Outras dicas

Isso geralmente acontece quando os caracteres HTML (

<, > , "

entre outros) estão sendo escapados. Tente definir a fuga como falsa ou semelhante. Não consigo encontrar a documentação da API para "com.ibm.useful.http.postdata"

Tente usar o snippet abaixo:

res.setContentType("text/html; charset=UTF-8");

Verifique se o seu banco de dados também está definido como a codificação UTF-8, se estiver usando um.

Se isso não resolver, leia isso artigo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top