Ir para conteúdo

POWERED BY:

Arquivado

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

andrerm

Acentuação X ASP/Ajax/MDB

Recommended Posts

Vi que é um problema até comum pesquisando na net, mas infelizmente não encontrei a solução para o meu caso.

 

O que eu preciso fazer é gravar os dados de um formulário em um mdb utilizando Ajax e ASP.

Se eu gravo no banco sem realização uma requisição via Ajax grava com a acentuação correta agora se realizo a requisição via Ajax os acentos gravam todos errados.

 

Estou utilizando a seguinte estrutura para o cadastro.

- 1 arquivo contendo o formulario

- 1 arquivo com as funções para requisição via Ajax

- 1 arquivo que realiza a inserção no banco

 

Já coloquei enconding no arquivo que faz a inserção e no arquivo com as funções Ajax.

 

Seguem dois exemplos da função que realiza a requisição via Ajax que achei que deve estar mais próximo de corrigir o meu problema.

 

Ex. 1 (Nesse eu informo o enconding)

function gravaDados(dados)
{
	var ajax = HTTPRequest();
	ajax.open("POST", "/v2/pt/forms/gravaCurriculum.asp", true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=ISO-8859-1");
	ajax.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate");
	ajax.setRequestHeader("Cache-Control", "post-check=0, pre-check=0");
	ajax.setRequestHeader("Pragma", "no-cache");
	ajax.setRequestHeader("encoding", "ISO-8859-1"); 
	ajax.setRequestHeader('Content-length', dados.length);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4)
		  alert(ajax.responseText);
	  };
	  ajax.send(dados);
}

Ex. 2 (Nesse eu não passo o enconding tentado forçar que ele utilize o enconding da página atual)

function gravaDados(dados)
{
	var ajax = HTTPRequest();
	ajax.open("POST", "/v2/pt/forms/gravaCurriculum.asp", true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.setRequestHeader('Content-length', dados.length);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4)
		  alert(ajax.responseText);
	  };
	  ajax.send(dados);
}

Mas nos dois casos o erro é o mesmo.

No caso de "é" ele grava "é"

 

Alguém teria alguma provavel solução ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Com as configurações abaixo resolvi o problema da acentuação mais os espaços estão sendo retirados, alguém saberia o motivo ?

Exemplo:

Digito: São Paulo

Grava: SãoPaulo

 

Response.Charset = "UTF-8"

Response.ContentType = "text/plain"

Session.Codepage = 65001

Session.LCID = 1046

Compartilhar este post


Link para o post
Compartilhar em outros sites

Apenas adicionando mais dados à resposta..

 

Para que esse tipo de problema nõa ocorra comigo.. eu sempre adiciono

Response.AddHeader "Content-Type", "text/html; charset=iso-8859-1"
response.expires=-1

Às minhas páginas, e também abro elas no DW e mudo o "Encoding" delas para "Europeu Ocidental"

 

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estes problemas de acentuação ocorrem devido à incompatibilidade dos charsets do seu projeto. Escolha um charset e fique com ele até o final :)

 

Nota: Apesar do pessoal gostar do UTF-8, eu ainda prefiro o ISO-8859-1

 

Atenciosamente,

 

Fabio Zendhi Nagao (nagaozen)

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá uma olhada neste artigo, pode lhe esclarecer algumas coisas.

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.