none
RotativaW7 MVC 4 C# palavras acentuadas? RRS feed

  • Pergunta

  • O RotativaW7 não acentua palavras no Gráfico Título e Eixo Y com GoogleChart, alguém tem alguma sugestão?

      public string RemoveAcentos(string input)
            {
                if (string.IsNullOrEmpty(input))
                {
                    return "";
                }
                byte[] bytes = System.Text.Encoding.GetEncoding("iso-8859-8").GetBytes(input);
                return System.Text.Encoding.UTF8.GetString(bytes);
            }
    

     public ActionResult Resultado_AcessoPublicoAARH_PDF()
            {
                ViewAsPdf pdf = new ViewAsPdf();
                pdf.ViewName = "Resultado_AcessoPublicoAARH_PDF";          
                ViewBag.Data22 = GerandoDadosBairroLocal();
              
                return pdf;
            }
    private string GerandoDadosBairroLocal()
    
     {
                 var query = from OJ_Prod_AARH in db.OJ_Prod_AARH
                             from Ag_Soc_Endereco in db.Ag_Soc_Endereco
                             from Ag_Pol_C_Area_Bai_Loc in db.Ag_Pol_C_Area_Bai_Loc
                             from Ag_Soc_PF in db.Ag_Soc_PF
                             where
                               Ag_Pol_C_Area_Bai_Loc.id == (Int32)Ag_Soc_Endereco.cod_Area_Loc &&
                               Ag_Soc_Endereco.id == (Int32)Ag_Soc_PF.cod_Endereco &&
                               OJ_Prod_AARH.cod_PF == (Int32)Ag_Soc_PF.id
                             group OJ_Prod_AARH by new
                             {
                                 Ag_Soc_Endereco.cod_Area_Loc,
                                 Ag_Pol_C_Area_Bai_Loc.descricao
                             } into g
                             select new
                             {
                                 Numero = g.Count(p => p.Ag_Soc_PF.cod_Endereco != null),
                                 Local = g.Key.descricao
                             };
                 //var l = query.ToList();
                 StringBuilder str = new StringBuilder();
                 str.AppendFormat("['{0}','{1}']", "Local", "Numero");
                 foreach (var item in query.ToArray())
                 {
                     str.AppendFormat(",['{0}',{1}]", item.Local, item.Numero);
                 }
                 string teste = str.ToString();
                 return str.ToString();
             }
     google.load("visualization", "1", { packages: ["corechart"] });
            google.setOnLoadCallback(drawChart);
            function drawChart() {
    var data22 = google.visualization.arrayToDataTable(@Html.Raw("[" + ViewBag.Data22 + "]"));
                var options = {
                    title: "ACIDENTES COM CÃES E GATOS, PERÍODO DE 2007 A 2013, PATO BRANCO, SEGUNDO LOCAL DE RESIDÊNCIA.",
                    vAxis: { title: "BAIRRO/LOCAL" },
                    hAxis: { title: "NÚMERO DE OCORRÊNCIAS" },
                    legend: { none" }
                };
                var chart = new google.visualization.BarChart(document.getElementById('barra_bairro'));
                chart.draw(data22, options);

    • Editado Wilson Boris quinta-feira, 3 de abril de 2014 11:10 complemento
    quinta-feira, 3 de abril de 2014 00:01

Respostas

  • eu fiz alguns testes e fora do gráfico a acentuação funciona corretamente!

    O problema é entre o Grafico e a Rotativa pelo que eu pude apurar!

    Percebi também que CÃES ele escreveu CAES, então não são todos os acentos... 

    assim de imediato se pode remover os acentos e fica padrão ... tudo sem !!! não sei se você deseja assim:

    Rotina de remover acentos!

    public string RemoveAcentos(string input)
    {
    	if (string.IsNullOrEmpty(input))
    	{
    		return "";
    	}
    	byte[] bytes = System.Text.Encoding.GetEncoding("iso-8859-8").GetBytes(input);
    	return System.Text.Encoding.UTF8.GetString(bytes);
    }
    Talvez não seja o melhor mas, necessário !!!


    Fulvio Cezar Canducci Dias

    • Marcado como Resposta Wilson Boris quinta-feira, 3 de abril de 2014 23:39
    quinta-feira, 3 de abril de 2014 01:50
  • Apenas inclui no meu controller a rotina sugerida de remover acentos, preciso mudar algo no código? 

    Não seria aqui

    foreach (var item in query.ToArray())
                 {
                     str.AppendFormat(",['{0}',{1}]", item.Local, item.Numero);
                 }

    tipo

    foreach (var item in query.ToArray())
                 {
                     str.AppendFormat(",['{0}',{1}]", RemoveAcentos(item.Local), item.Numero);
                 }



    Fulvio Cezar Canducci Dias

    • Marcado como Resposta Wilson Boris quinta-feira, 3 de abril de 2014 23:39
    quinta-feira, 3 de abril de 2014 19:37
  • Desculpe Fulvio, deu certo, falta apenas o Título e o nome dos Eixos.

    title: "ACIDENTES COM CÃES E GATOS, PERÍODO DE 2007 A 2013, PATO BRANCO, SEGUNDO LOCAL DE RESIDÊNCIA.",
                    vAxis: { title: "BAIRRO/LOCAL" },
                    hAxis: { title: "NÚMERO DE OCORRÊNCIAS" },

    Vamos lá com o código abaixo:

    CONTROLER:
    public ActionResult Resultado_AcessoPublicoAARH_PDF()
            {
                ViewAsPdf pdf = new ViewAsPdf();
                pdf.ViewName = "Resultado_AcessoPublicoAARH_PDF";          
                ViewBag.Data22 = GerandoDadosBairroLocal();
              
                return pdf;
            }
    
    public string RemoveAcentos(string input)
            {
                if (string.IsNullOrEmpty(input))
                {
                    return "";
                }
                byte[] bytes = System.Text.Encoding.GetEncoding("iso-8859-8").GetBytes(input);
                return System.Text.Encoding.UTF8.GetString(bytes);
            }
    
    private string GerandoDadosBairroLocal()
    
     {
                 var query = from OJ_Prod_AARH in db.OJ_Prod_AARH
                             from Ag_Soc_Endereco in db.Ag_Soc_Endereco
                             from Ag_Pol_C_Area_Bai_Loc in db.Ag_Pol_C_Area_Bai_Loc
                             from Ag_Soc_PF in db.Ag_Soc_PF
                             where
                               Ag_Pol_C_Area_Bai_Loc.id == (Int32)Ag_Soc_Endereco.cod_Area_Loc &&
                               Ag_Soc_Endereco.id == (Int32)Ag_Soc_PF.cod_Endereco &&
                               OJ_Prod_AARH.cod_PF == (Int32)Ag_Soc_PF.id
                             group OJ_Prod_AARH by new
                             {
                                 Ag_Soc_Endereco.cod_Area_Loc,
                                 Ag_Pol_C_Area_Bai_Loc.descricao
                             } into g
                             select new
                             {
                                 Numero = g.Count(p => p.Ag_Soc_PF.cod_Endereco != null),
                                 Local = g.Key.descricao
                             };
                 //var l = query.ToList();
                 StringBuilder str = new StringBuilder();
                 str.AppendFormat("['{0}','{1}']", "Local", "Numero");
                 foreach (var item in query.ToArray())
                     {
                    str.AppendFormat(",['{0}',{1}]", RemoveAcentos(item.Local), item.Numero);
                     }
    
                
                 string teste = str.ToString();
                 return str.ToString();
             }

    CSHTML:
    google.load("visualization", "1", { packages: ["corechart"] });
            google.setOnLoadCallback(drawChart);
            function drawChart() {
    var data22 = google.visualization.arrayToDataTable(@Html.Raw("[" + ViewBag.Data22 + "]"));
                var options = {
                    title: "ACIDENTES COM CÃES E GATOS, PERÍODO DE 2007 A 2013, PATO BRANCO, SEGUNDO LOCAL DE RESIDÊNCIA.",
                    vAxis: { title: "BAIRRO/LOCAL" },
                    hAxis: { title: "NÚMERO DE OCORRÊNCIAS" },
                    legend: { none" }
                };
                var chart = new google.visualization.BarChart(document.getElementById('barra_bairro'));
                chart.draw(data22, options);

    ali é manual retire do próprio js!!! ok

    Fulvio Cezar Canducci Dias

    • Marcado como Resposta Wilson Boris quinta-feira, 3 de abril de 2014 23:39
    quinta-feira, 3 de abril de 2014 21:11

Todas as Respostas

  • Tente usar UTF-8 ao invés de ISO-8859-1 na codificação da página.

    quinta-feira, 3 de abril de 2014 01:48
    Moderador
  • eu fiz alguns testes e fora do gráfico a acentuação funciona corretamente!

    O problema é entre o Grafico e a Rotativa pelo que eu pude apurar!

    Percebi também que CÃES ele escreveu CAES, então não são todos os acentos... 

    assim de imediato se pode remover os acentos e fica padrão ... tudo sem !!! não sei se você deseja assim:

    Rotina de remover acentos!

    public string RemoveAcentos(string input)
    {
    	if (string.IsNullOrEmpty(input))
    	{
    		return "";
    	}
    	byte[] bytes = System.Text.Encoding.GetEncoding("iso-8859-8").GetBytes(input);
    	return System.Text.Encoding.UTF8.GetString(bytes);
    }
    Talvez não seja o melhor mas, necessário !!!


    Fulvio Cezar Canducci Dias

    • Marcado como Resposta Wilson Boris quinta-feira, 3 de abril de 2014 23:39
    quinta-feira, 3 de abril de 2014 01:50
  • Joao_Prado,

    eu usei no Web config o código abaixo, mas sem resultados:

     <system.web>
        <globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8" culture="pt-br"/>

    Poderia me orientar quanto a implementação do código com ISO-8859-1?

    quinta-feira, 3 de abril de 2014 11:09
  • Fulvio,

    no controller acima inclui a Rotina de remover acentos, mas sem sucesso. Fiz algo errado?

    quinta-feira, 3 de abril de 2014 11:12
  • Fulvio,

    no controller acima inclui a Rotina de remover acentos, mas sem sucesso. Fiz algo errado?

    Como vc fez?

    Fulvio Cezar Canducci Dias

    quinta-feira, 3 de abril de 2014 12:59
  • Apenas inclui no meu controller a rotina sugerida de remover acentos, preciso mudar algo no código? 
    quinta-feira, 3 de abril de 2014 16:21
  • Apenas inclui no meu controller a rotina sugerida de remover acentos, preciso mudar algo no código? 

    Não seria aqui

    foreach (var item in query.ToArray())
                 {
                     str.AppendFormat(",['{0}',{1}]", item.Local, item.Numero);
                 }

    tipo

    foreach (var item in query.ToArray())
                 {
                     str.AppendFormat(",['{0}',{1}]", RemoveAcentos(item.Local), item.Numero);
                 }



    Fulvio Cezar Canducci Dias

    • Marcado como Resposta Wilson Boris quinta-feira, 3 de abril de 2014 23:39
    quinta-feira, 3 de abril de 2014 19:37
  • Fúlvio,

    nada feito, ainda sem modificações no gráfico.

    quinta-feira, 3 de abril de 2014 20:36
  • Fúlvio,

    nada feito, ainda sem modificações no gráfico.

    Amigo eu não sei como você ta fazendo ... !!! 


    Fulvio Cezar Canducci Dias

    quinta-feira, 3 de abril de 2014 20:43
  • Desculpe Fulvio, deu certo, falta apenas o Título e o nome dos Eixos.

    title: "ACIDENTES COM CÃES E GATOS, PERÍODO DE 2007 A 2013, PATO BRANCO, SEGUNDO LOCAL DE RESIDÊNCIA.",
                    vAxis: { title: "BAIRRO/LOCAL" },
                    hAxis: { title: "NÚMERO DE OCORRÊNCIAS" },

    Vamos lá com o código abaixo:

    CONTROLER:
    public ActionResult Resultado_AcessoPublicoAARH_PDF()
            {
                ViewAsPdf pdf = new ViewAsPdf();
                pdf.ViewName = "Resultado_AcessoPublicoAARH_PDF";          
                ViewBag.Data22 = GerandoDadosBairroLocal();
              
                return pdf;
            }
    
    public string RemoveAcentos(string input)
            {
                if (string.IsNullOrEmpty(input))
                {
                    return "";
                }
                byte[] bytes = System.Text.Encoding.GetEncoding("iso-8859-8").GetBytes(input);
                return System.Text.Encoding.UTF8.GetString(bytes);
            }
    
    private string GerandoDadosBairroLocal()
    
     {
                 var query = from OJ_Prod_AARH in db.OJ_Prod_AARH
                             from Ag_Soc_Endereco in db.Ag_Soc_Endereco
                             from Ag_Pol_C_Area_Bai_Loc in db.Ag_Pol_C_Area_Bai_Loc
                             from Ag_Soc_PF in db.Ag_Soc_PF
                             where
                               Ag_Pol_C_Area_Bai_Loc.id == (Int32)Ag_Soc_Endereco.cod_Area_Loc &&
                               Ag_Soc_Endereco.id == (Int32)Ag_Soc_PF.cod_Endereco &&
                               OJ_Prod_AARH.cod_PF == (Int32)Ag_Soc_PF.id
                             group OJ_Prod_AARH by new
                             {
                                 Ag_Soc_Endereco.cod_Area_Loc,
                                 Ag_Pol_C_Area_Bai_Loc.descricao
                             } into g
                             select new
                             {
                                 Numero = g.Count(p => p.Ag_Soc_PF.cod_Endereco != null),
                                 Local = g.Key.descricao
                             };
                 //var l = query.ToList();
                 StringBuilder str = new StringBuilder();
                 str.AppendFormat("['{0}','{1}']", "Local", "Numero");
                 foreach (var item in query.ToArray())
                     {
                    str.AppendFormat(",['{0}',{1}]", RemoveAcentos(item.Local), item.Numero);
                     }
    
                
                 string teste = str.ToString();
                 return str.ToString();
             }
    

    CSHTML:
    google.load("visualization", "1", { packages: ["corechart"] });
            google.setOnLoadCallback(drawChart);
            function drawChart() {
    var data22 = google.visualization.arrayToDataTable(@Html.Raw("[" + ViewBag.Data22 + "]"));
                var options = {
                    title: "ACIDENTES COM CÃES E GATOS, PERÍODO DE 2007 A 2013, PATO BRANCO, SEGUNDO LOCAL DE RESIDÊNCIA.",
                    vAxis: { title: "BAIRRO/LOCAL" },
                    hAxis: { title: "NÚMERO DE OCORRÊNCIAS" },
                    legend: { none" }
                };
                var chart = new google.visualization.BarChart(document.getElementById('barra_bairro'));
                chart.draw(data22, options);

    quinta-feira, 3 de abril de 2014 21:08
  • Desculpe Fulvio, deu certo, falta apenas o Título e o nome dos Eixos.

    title: "ACIDENTES COM CÃES E GATOS, PERÍODO DE 2007 A 2013, PATO BRANCO, SEGUNDO LOCAL DE RESIDÊNCIA.",
                    vAxis: { title: "BAIRRO/LOCAL" },
                    hAxis: { title: "NÚMERO DE OCORRÊNCIAS" },

    Vamos lá com o código abaixo:

    CONTROLER:
    public ActionResult Resultado_AcessoPublicoAARH_PDF()
            {
                ViewAsPdf pdf = new ViewAsPdf();
                pdf.ViewName = "Resultado_AcessoPublicoAARH_PDF";          
                ViewBag.Data22 = GerandoDadosBairroLocal();
              
                return pdf;
            }
    
    public string RemoveAcentos(string input)
            {
                if (string.IsNullOrEmpty(input))
                {
                    return "";
                }
                byte[] bytes = System.Text.Encoding.GetEncoding("iso-8859-8").GetBytes(input);
                return System.Text.Encoding.UTF8.GetString(bytes);
            }
    
    private string GerandoDadosBairroLocal()
    
     {
                 var query = from OJ_Prod_AARH in db.OJ_Prod_AARH
                             from Ag_Soc_Endereco in db.Ag_Soc_Endereco
                             from Ag_Pol_C_Area_Bai_Loc in db.Ag_Pol_C_Area_Bai_Loc
                             from Ag_Soc_PF in db.Ag_Soc_PF
                             where
                               Ag_Pol_C_Area_Bai_Loc.id == (Int32)Ag_Soc_Endereco.cod_Area_Loc &&
                               Ag_Soc_Endereco.id == (Int32)Ag_Soc_PF.cod_Endereco &&
                               OJ_Prod_AARH.cod_PF == (Int32)Ag_Soc_PF.id
                             group OJ_Prod_AARH by new
                             {
                                 Ag_Soc_Endereco.cod_Area_Loc,
                                 Ag_Pol_C_Area_Bai_Loc.descricao
                             } into g
                             select new
                             {
                                 Numero = g.Count(p => p.Ag_Soc_PF.cod_Endereco != null),
                                 Local = g.Key.descricao
                             };
                 //var l = query.ToList();
                 StringBuilder str = new StringBuilder();
                 str.AppendFormat("['{0}','{1}']", "Local", "Numero");
                 foreach (var item in query.ToArray())
                     {
                    str.AppendFormat(",['{0}',{1}]", RemoveAcentos(item.Local), item.Numero);
                     }
    
                
                 string teste = str.ToString();
                 return str.ToString();
             }

    CSHTML:
    google.load("visualization", "1", { packages: ["corechart"] });
            google.setOnLoadCallback(drawChart);
            function drawChart() {
    var data22 = google.visualization.arrayToDataTable(@Html.Raw("[" + ViewBag.Data22 + "]"));
                var options = {
                    title: "ACIDENTES COM CÃES E GATOS, PERÍODO DE 2007 A 2013, PATO BRANCO, SEGUNDO LOCAL DE RESIDÊNCIA.",
                    vAxis: { title: "BAIRRO/LOCAL" },
                    hAxis: { title: "NÚMERO DE OCORRÊNCIAS" },
                    legend: { none" }
                };
                var chart = new google.visualization.BarChart(document.getElementById('barra_bairro'));
                chart.draw(data22, options);

    ali é manual retire do próprio js!!! ok

    Fulvio Cezar Canducci Dias

    • Marcado como Resposta Wilson Boris quinta-feira, 3 de abril de 2014 23:39
    quinta-feira, 3 de abril de 2014 21:11
  • VALEU GIGANTE, MUITO OBRIGADO.
    quinta-feira, 3 de abril de 2014 23:40