Jquery ajax UTF-8

Galera,
estou tendo um problema com o ajax do jquery que esta me tirando o sono.O problema é o seguinte, quando envio os dados para servidor eles estao indo com varios caracteres estranhos tipo ó quando uso os caracteres especiais ç ~ á o codigo é o seguinte:

jQuery.ajax({
    url: this.action,
    type: "POST",
    dataType:"html",
    cache: false,
    data: decodeURI(jQuery(this).serialize()),
    success: function(data, textStatus, XMLHttpRequest){
        	var pane = $("#overlay").overlay().getOverlay().find('#wrapOverlay').html(data);
    }

alguém sabe como posso resolver esse problema ?
Obs: estou usando struts 2.
Obrigado

Coloca este parametro:

contentType: "charset=ISO-8859-1"

nesta chamada

dentro do {} do metodo ajax do jquery

Valeu Ovelha,
mas infelizmente não deu certo descobri que o metodo ajax do jquery só envia os dados no padrão UTF-8 quando enviado no tipo POST troquei para GET e os dados foram enviados normalmente.
Valeu.

jQuery.ajax({  
    url: this.action,  
    type: "POST",  --troquei para GET
    dataType:"html",  
    cache: false,  
    data: decodeURI(jQuery(this).serialize()),  
    success: function(data, textStatus, XMLHttpRequest){  
            var pane = $("#overlay").overlay().getOverlay().find('#wrapOverlay').html(data);  
    }  

DnCam. Você fez mas algo, para que isso funcione? Cara estou a dois dias tentando resolver isso, e nada que eu faço dá certo. Ja estou pensando seriamente em mudar tudo aqui pra prototype. Acho que estou fazendo algo errado. Mas como é a primeira vez estou num projeto que usa JQuery, não estou achando onde. Vou colocar partes do meu codigo aqui pra que se alguem poder me ajudar. Vou continuar procurando a solução aqui tb. porque acho que se demorar mas a coisa vai ficar preta pra mim aqui na empresa kkkk.

includes dos js.

<script type="text/javascript" src="${pageContext.request.contextPath}/scripts/ajax.js" [b]charset="ISO-8859-1"[/b]></script>

head dos JSPs

[code]
<%@ page language=“java” contentType=“text/html; charset=ISO-8859-1” pageEncoding=“ISO-8859-1”%>

[/code]

Chamada Ajax

$.ajax({ contentType: 'application/x-www-form-urlencoded; charset=ISO-8859-1', url: action, type: 'GET', //type: 'POST', dataType: 'html', cache: false, data: $(button.form).serialize(), forceSync: true, beforeSend: function(){ ajaxLoadShow(); }, complete: function(){ ajaxLoadHide(); }, success: function(response){ $("#block-two").html(response); }, error: function(jqXHR, textStatus, errorThrown){ $('#block-one').html(jqXHR.responseText); } });
Já tentei um monte de formas, olhando a doc do JQuery e por dicas em forums e nada. Fico muito grato se alguem ai poder me ajudar.

Carinha, o problema aí está no serialize… Internamente no JQuery ele acaba chamando o métodos javascript encodeURI, que converte na marra os campos para UTF-8. Isto acaba gerando os tais caracteres estranhos.

Então, uma pergunta simples: porque você não usa UTF-8 na sua página de uma vez, ao inves de ISO-8859-1? É a solução mais rápida…

Na verdade eu não pesquisei a fundo o motivo de usar ou não o UTF-8, Segue informações de algumas pessoas de foruns, onde dissem que se usar UTF-8 nunca vai funcionar os caracteres especiais como ‘é, ão, ç’ por exemplo.

Gente, mexi tanto aqui que nem sei mas onde mexi pra corrigir o problema. Mas aparentemente foi colocar isso @CHARSET "UTF-8"; nos arquivos *.css Agora esta funcionando. Mas confeso que vou tirar um tempo pra estudar esses dois encoding, pois juro não entendi bem esse treco não. Não entendi quando e qual usar. Analisando aqui ve que em aguns lugares do projeto esta o UTF-8 e em outros esta o ISO-8859-1. Estou até com medo de mexer e dar rolo denovo. Vou criar um projetinho em casa pra estudar isso. Mas valew pessoal que tentou ajudar. muito obrigado.

O encoding dos dados que são enviados pelo servidor e o encoding da sua página (e do arquivo que ela está sendo salva!) precisam ser o MESMO.
Agora que ví… Tópico de 2010! :roll:

de 2010 e o pazinha de ouro ta aki o/ quebrando a kbeça