none
Problema com caracteres especiais (�) [Resolvido] RRS feed

  • Pergunta

  • Olá pessoal, tenho um problema aparentemente fácil de resolver:
    Tenho uma aplicação com um sistema de gerenciamento de arquivos online, nesse sistema tenho uma página para monitorar logs, que é recarregada automaticamente a cada 10s via javascript.
    Essa página contém um textbox multilinha onde é impresso o log (um arquivo de texto), aí está o problema, esse log tem caracteres especiais que não são mostrados no textbox, são mostrados quadrados no lugar de ç, à, á, é, etc.
    Parecer ser um problema de codificação "
    requestEncoding", mas não sei como configurar isso, alguém já passou por isso também ou sabe algo sobre?
    segunda-feira, 26 de janeiro de 2009 12:15

Respostas

  • Boas,

    Tente algo como:

    StreamReader sr = new StreamReader(File.Open(fileName, FileMode.Open, FileAccess.ReadWrite), Encoding.Default);

    segunda-feira, 26 de janeiro de 2009 13:07
    Moderador

Todas as Respostas

  • ola

    pode ser isso que esta falando...

    coloque esta configuração no seu web.config.

    <system.web>

    ....

    <globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="pt-br"/>

    ....

    </system.web>


    segunda-feira, 26 de janeiro de 2009 12:35
  • S4ndr0 obrigado pela resposta rápida,
    Tenho essa tag no meu web.config na raiz do site.
    Essa tag tem que ser no web.config da raiz do site ou no web.config da framework (IIS) ou tanto faz?

    Já tentei:
    requestEncoding / responseEncoding="utf-8"
    requestEncoding / responseEncoding="iso-8859-1"
    requestEncoding / responseEncoding="windows-1250"

    E nada, o que muda é que ao invés de quadrados, o que aparece são pontos de interrogação "?" no lugar de caracteres especiais.

    Só para melhor detalhar o problema, esse é o código que uso para carregar o log no textBox:

        if (!Page.IsPostBack)
        {
            string filePath = Request.Params["FileName"];
            try
            {
                string fileName = Server.MapPath(filePath);
                StreamReader sr = new StreamReader(File.Open(fileName, FileMode.Open, FileAccess.ReadWrite));
                TextBox1.Text = sr.ReadToEnd();
                sr.Close();
            }
            catch
           ...


    segunda-feira, 26 de janeiro de 2009 13:03
  • Boas,

    Tente algo como:

    StreamReader sr = new StreamReader(File.Open(fileName, FileMode.Open, FileAccess.ReadWrite), Encoding.Default);

    segunda-feira, 26 de janeiro de 2009 13:07
    Moderador
  • Valeu Israel, na mosca!

    Aí galera, quando alguém tiver o mesmo problema faça como o Israel disse:

    StreamReader sr = new StreamReader(File.Open(fileName, FileMode.Open, FileAccess.ReadWrite), Encoding.Default);

    segunda-feira, 26 de janeiro de 2009 13:26