Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Inside

Problemas com acentos ao enviar formulário

Recommended Posts

Caros amigos,

 

Achei este script para enviar dados de um formulário na mesma página e está funcionando bem porém ao enviar um texto com acento, o texto fica assim:

 

Eu fiz já minha inscrição

 

quando deveria ser assim:

 

Eu já fiz minha inscrição

 

	<script type="text/javascript">
	$(document).ready(function(){
		$("#comentario").validate({
			debug: false,
			rules: {
				nome: "required",
				coment: "required",
				email: {
					required: true,
					email: true
				}
			},
			messages: {
				nome: "Obrigatório!",
				coment: "Obrigatório!",
				nome: "Obrigatório!",
			},
			submitHandler: function(form) {
				// do other stuff for a valid form
				$.post('comentario_incluir.asp?acao=incluir', $("#comentario").serialize(), function(data) {
					$('#resultado-form-comentario').html(data);
				});
			}
		});
	});
	</script>

 

<form name="comentario" id="comentario" action="" method="post">
<label for="nome">Nome <span class="required">*</span></label> <input id="nome" name="nome" type="text" value="" size="30" />
<label for="email">E-mail <span class="required">*</span></label> <input id="email" name="email" type="text" value="" size="30" />
<label for="coment">Comentários <span class="required">*</span></label><textarea id="coment" name="coment" cols="45" rows="8"></textarea>
<input name="submit" type="submit" id="submit" value="Enviar Comentário" /></p>
</form>
<div id="resultado-form-comentario"></div>

 

Alguém pode me ajudar a solucionar este problema?

 

 

Obrigado pela atenção de todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

esse texto está no seu js ? ou vem de resposta do ajax ?

 

leia:

http://wbruno.com.br/ajax/problemas-acentuacao-ajax-como-resolver/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, a resposta é apresentada correta o texto:

 

"Eu já fiz minha inscrição"

 

é somente uma exemplo, poderia ser:

 

"Itens regulatórios de instituições financeiras"

 

ou qualquer texto que tenha texto.

 

 

Sempre que um comentário com acentos é enviado fica desta forma, ele grava no db já desta forma.

 

*Testei colocando o charset no arquivo: comentario_incluir.asp mas ainda não funciona, continua gravando os acentos errados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

texto que tenha texto..

 

 

Ok, mas de onde vem esse texto ?

tá digitado no html ? é cuspido com php ? ou vem da resposta do ajax?

 

 

vc leu o link q postei ? lá eu mostro o motivo e explico como corrigir. Ainda tem dúvida ? no que ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom... deixa eu explicar novamente.

 

Tenho um formulário de comentários numa notícia.

 

Ao enviar qualquer texto com acentos o script está convertendo os acentos em caracteres estranhos e isto está ocorrendo já no banco, ao enviar os caracteres está errados já no banco de dados.

 

Já peguei um problema parecido no qual eu enviava correto, gravava correto o acento mas na tela ficava errado esse não, no banco já está errado por isso suponho que é o Ajax que está manando errado para o banco.

 

A reposta na tela que é:

 

Seu comentário foi enviado!

 

Está correto, oque não fica é o texto que usuário escreve.

 

 

Já coloquei esse código: <% Response.Charset="ISO-8859-1" %> no arquivo de inclusão no db mas não resolveu.

 

Não creio que o porblema esteja no arquivo de inclusão no db, porque antes funcionava agora que passei a usar Ajax para carregar na mesma tela o resultado começou a aparecer o problema.

 

Como teste acabei de enviar o formulário sem o Ajax e deu certo, é o Ajax mesmo que está enviando errado.

 

Você sabe como codificar já no envio no script?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ajax por padrão sempre envia em utf8

 

 

http://api.jquery.com/jQuery.ajax/

 

tente trocar o seu $.post por $.ajax, ai vc vai conseguir configurar o contentType. No link da documentação q te mandei está explicando como fazer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado,

 

pelo que vi tentei isso aqui mas não deu certo, acho que tem algum erro:

 

$.ajax({
type: "POST",
url: "http://www.eldorado.sp.gov.br/comentario_incluir.asp?acao=incluir",
contentType: "application/x-www-form-urlencoded; charset=iso-8859-1",
scriptCharset: "iso-8859-1",
data: dataString,
    success: function() {
        $('#resultado-form-comentario').html(data);
        }
});

Compartilhar este post


Link para o post
Compartilhar em outros sites

então tenta com um utf8 decode lá no teu server-side

Compartilhar este post


Link para o post
Compartilhar em outros sites

Achei esse outro script, envia mas continua mostrando os caracteres estranhos:

<script type="text/javascript">	jQuery(document).ready(function(){		jQuery('#comentario').submit(function(){			var dados = jQuery( this ).serialize(); 			jQuery.ajax({				type: "POST",				url: "comentario_incluir.asp?acao=incluir",				data: dados,				contentType: "application/x-www-form-urlencoded; charset=iso-8859-1",				scriptCharset: "iso-8859-1",				success: function( data )				{					$('#resultado-form-comentario').html(data);				}			});						return false;		});	});	</script>	

Tentei também UTF-8 no server side mas ainda não funcionou.

 

 

Criei uma função server side Replace para resolver o problema temporariamente mas estou com dificuldade para dar um replace no Á e no Í ao mesmo tempo pois os códigos se cruzam:

 

Á com caracteres especiais fica assim = Ã

Í com caracteres especiais fica assim = Á

 

Viu o problema? Um dá replace no outros. Ainda não sei como resolver isto.

 

Mas acho que isto não vai dar muito certo, continua pesquisando uma forma de enviar pelo Ajax de forma correta, se mais alguém puder ajudar, agradeço.

 

 

Alguém tem alguma sugestão no Ajax ou no server side? Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.