|
|
Acentos no Ajax |
|
Descobri uma coisa legal e to mandando para vocês… Como colocar acentos em aplicação com Ajax! Na pagina que recebe os dados: (Na primeira linha).. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt-br"
lang="pt-br">
Na pagina que envia os dados, precisa colocar…
EM ASP:
Response.AddHeader "Content-Type", "text/html; charset=iso-8859-1"
EM PHP:
header("Content-Type: text/html; charset=iso-8859-1"); |
This entry was posted on abril 25, 2006 at 8:37 pm and is filed under acentos, acentuação, ajax, content-type. You can follow any responses to this entry through the RSS 2.0 feed.
You can leave a response, or trackback from your own site.
maio 31, 2006 às 8:59 pm
Estou tendo um sério problema:
Tenho um script que executa o XMLHTTP e submete via POST o valor digitado num campo TEXT para um script PHP.
O script PHP pega o valor digitado, grava num arquivo TXT através de fopen() e fwrite().
O que acontece é que se o conteúdo tiver acentuação, o valor gravado no arquivo fica totalmente desconfigurado, mas se eu mando retornar vem correto.
maio 31, 2006 às 9:14 pm
André, tenta converter a string antes de gravar no arquivo (ou antes de passar via post) usando utf8_encode
Importante é vc manter o mesmo charset tanto da página q recebe os dados (ajax/servidor) como a página cliente…
Tive diversos problemas com isso, resolvi mas ainda não entendi tudo, só aprendi q tenho q manter tudo na mesma codificação, no caso, utf8.
Tenta ae e qq coisa avisa…
ps: nem sabia q esse blog tava aberto na web, na real eu tava usando ele só prá guardar uns textos rápidos…hehe
maio 31, 2006 às 10:14 pm
Veja que estranho…
Eu usei o mesmo charset em todas as paginas (UTF-8)
O retorno que vem pra primeira página através do echo() vem correto mas o conteúdo do arquivo fica errado…
Veja o código:
x-teste.php
function enviar(form)
{
x = new ActiveXObject(‘Microsoft.XMLHTTP’);
x.onReadyStateChange = function (res)
{
if(x.readyState==4)
if(x.status==200)
retorno.innerHTML = x.responseText;
}
x.open(‘POST’,form.action,true);
x.setRequestHeader(‘Content-Type’,’application/x-www-form-urlencoded’);
x.send(form.texto.name+’=’+form.texto.value);
}
x-teste2.php
Se eu escrevo ANDRÉ no campo e clico em Enviar, retorna ANDRÉ, mas no arquivo texto.txt é gravado ANDRÉ
maio 31, 2006 às 10:15 pm
Putz.. nao foi o código HTML na mensagem
maio 31, 2006 às 11:18 pm
Descobri…
Usando a função utf8_decode() antes de gravar no arquivo funcionou.
junho 1, 2006 às 4:17 pm
Era o q eu ia sugerir, usar encode de um lado e decode do outro…
ainda bem q funcionou…
qq coisa avisa.
julho 2, 2006 às 9:51 pm
Prezados, escrevo para registrar que a ajuda de vcs com esta dica de acentuação me salvou o dia!!! Grato
julho 25, 2006 às 5:12 pm
Prezados, qual a função equivalente ao utf8_decode no asp?
julho 25, 2006 às 7:51 pm
Paulo, tente usar Server.HTMLEncode
agosto 2, 2006 às 6:45 pm
Andava desesperado à procura desta funcionalidade. Muito bom. Funciona na perfeição. Acabou-se a “caca”, a “actuacao”, ” ‘a ” e afins.
Obrigado
agosto 2, 2006 às 7:06 pm
Legal q ajudou Pedro.
😉
janeiro 6, 2007 às 4:35 pm
Boa Tarde…
Aproveito para deixar o meu comentário que o esquema da acentuação funcionou legal aqui também….
Valeu pela dica..
janeiro 29, 2007 às 5:51 pm
Foi de grande ajuda essa dica. 🙂
obrigado, sempre enroscava nas acentuações
fevereiro 2, 2007 às 2:56 pm
nao to conseguindo fazer funfar este esquema dos acentos alguem pode me ajudar por favor
junho 22, 2007 às 12:00 pm
Cara, não tava botando fé nessa inserção do header, mas foi justamente essa solução simples que resolveu o problema num teste que estou fazendo aqui. Muito obrigado!
julho 11, 2007 às 6:48 pm
Olá Gean!
Estava aqui quebrando a cabeça com esse problema do encoding, pois estava usando o framework pototype, chamando um asp, e os caracteres especiais estavam com problema. Foi só adicionar o Response.AddHeader e o problema foi solucionado.
Vlw!
julho 11, 2007 às 9:06 pm
Bruno, eu tbém quebrei bastante a cabeça até achar essa solução simples.
😉
dezembro 28, 2008 às 1:00 am
Caracolas!!!!! vcs salvaram a minha vida!!!!!!!!!!! valew mesmo ja tinha tentado de tudo e nada dava certo!!!.. até que essa simples função do php já fazia o que eu queria!!
dezembro 28, 2008 às 10:16 am
Poseh Bruce, prá ver q esse post aqui tá sendo útil, vão fazer 3 anos q ele foi pro ar e os mesmos bugs ainda acontecem.
Valew, qq coisa avisa ae !!!
novembro 11, 2010 às 3:45 pm
A solução se constitui em 2 providências:
1 – Chamada:
$.ajax({
url : “Ajax_getxxx.asp?Matr=”+Matr,
success : function (data) {
window.status = data;
$(“TEXTAREA[Id=IdTextarea]”).html(data);
}
});
2 – Stub ASP (fornecedor da informação):
Session.CodePage = 1252
strSQL = …
Set conn = Server.CreateObject(A…)
conn.Open CONN_STRING
Set rsTask = Server.CreateObject(…)
rsTask.Open strSQL,conn,3,3
…
Response.CharSet = “iso-8859-1”
Response.AddHeader “Content-Type”, “text/html; charset=iso-8859-1”
novembro 11, 2010 às 4:10 pm
Complementando,
Existe uma diferença entre as tabelas de codificação de caracteres para as diversas circunstâncias que são estabelecidas na execução de um código ASP:
A codificação do HTML de apresentação é resolvida com a tag META. A codificação de trabalho do ASP, ao receber o conteúdo de um campo memo (ou BLOB) é a ISO-LATIN (1252).
Daí a diferença. Todas as dicas anteriores funcionam com campos text (VARCHAR) e não com BLOB.
janeiro 23, 2011 às 1:26 pm
[…] créditos…https://im0rt4lz.wordpress.com/2006/04/25/acentuacao-em-ajax/ […]