Charset no Firefox + MySQL

2 respostas
T

Olá
Estou encontrando um problema com o charset em uma página JSP. No IE ele insere normalmente, mas nos demais navegadores ele insere alguns caracteres especiais no momento de cadastrar no banco de dados palavras acentuadas.
No cabeçalho está assim:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
no Head do formulario está assim:

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

E o banco de dados está com o latin1.
Estou utilizando o AJAX, será que poderia ser este o problema??

2 Respostas

rock

Bom dia taraciuk,

acho que você está certo na suspeita :!:

como você está enviando e recebendo a requisição ajax :?:
utilizando algum framework :?:
quem recebe é um Servlet simples ou um ManagedBean(jsf) ou um Component(seam) :?:

:idea: Podes tentar fazer o debug e verificar o encoding desta requisição ajax. Para localizar o problema também podes verificar se o dado recebido está correto no momento de armazenar no banco.

T
Estou enviando os dados nesta função, e não da certo... :
function salvar()
{
        var sigla = document.getElementById('sSigla').value;  
       var nome = document.getElementById('sNome').value;        
        
            
           var ajax = openAjax();           
           url = "<%= request.getContextPath()%>/" + "inserirEstado?sSigla=" + sigla + "&sNome="+nome;
            ajax.open("POST", url , true);             
            ajax.onreadystatechange = function()
            {               
                if(ajax.readyState == 4)                 {
                    if(ajax.status == 200)
                    {
                        var resultado = ajax.responseText;
                        exibeResultado.innerHTML = resultado;
                    }
                      
                }
            }
            ajax.send(null); 
            adicionarLinha('tabela');
}
Que vai ser tratado na minha classe:
package action;

import java.io.IOException;
import java.sql.Connection;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import model.Estado;

import dao.JDBCEstadoDAO;
import dao.fabricaConexao;

public class inserirEstado extends HttpServlet {
	private static final long serialVersionUID = 1L;

	public inserirEstado() {
		super();

	}

	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {

	}

	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {			

		System.out.println("Executando gravação do Estado");

		String estUF = request.getParameter("sSigla");
		String estNome = request.getParameter("sNome");

		Estado novoEstado = new Estado();
		novoEstado.setEstUF(estUF);
		novoEstado.setEstNome(estNome);

		fabricaConexao fabrica = new fabricaConexao();
		Connection conexao = fabrica.abreConexao();

		JDBCEstadoDAO dao = new JDBCEstadoDAO(conexao);
		dao.inserir(novoEstado);

		fabrica.fechaConexao();
		
	}

}

Mas, interessante é que no IE ele insere corretamente...

Criado 17 de agosto de 2011
Ultima resposta 18 de ago. de 2011
Respostas 2
Participantes 2