Jump to content


Photo

Acentos, Ajax, Mysql, Asp


  • Faça o login para participar
3 replies to this topic

#1 Rafael Rocha

Rafael Rocha

    Novato no fórum

  • Usuários
  • 19 posts
  • Sexo:Não informado

Posted 14/08/2009, 04:01

Galera sei que minha duvida parece boba e ridiculo, sei tb que ha inumeros topicos falando sofre o assunto, em diversos forum, porem acho q o problema sou eu mesmo.... nao to sabendo fazer com q a acentuacao fique correta... nao sei o que eh e nem sei mais o que fazer.... tentei de todas ass formas, e nada
por isso estou aqui... quero mt a ajuda de vcs..

Bom é a primeir vez que estou fazendo algo usando ajax e ja esotu me desanimando =/..
a pessoa escreve algo na caixa de texto e o que ela escreveu é jogado para um banco de dados mysql.. porem o q ela escreve no banco salva de forma estranha por ex. o ç fica ã§ e quando eu mando ler do banco ele imprime ã§ e nao o ç...... abaixo botei todo o meu codigo

bom vamos la

a pagina principal, onde comeca tudo e onde tude é puxada apartir dela eh a seguinte

<!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">




<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<script src="include/script.js"></script>
</head>

<body>

<div id="menu">
	<a href="java script:" onclick="Agenda()">Agenda</a>
</div>

<div id="conteudo">

</div>

</body>

</html>

A pagina onde ha o campo de texto q sera escrito o texto eh: obs: essa pagina eh chamada dentro do codigo anterior =]
<%Response.AddHeader "Content-Type", "text/html; charset=iso-8859-1"%>
<!--#include file="../include/include.asp"-->

<%
Set RS= Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM agenda"
RS.Open SQL, cn, 3



	response.write(rs("texto"))
%>
<input name="texto" type="text" id="texto">
<input type="button" value="Cadastrar" onClick="AgendaCadastra()">


e a pagina ajax esta da seguinte forma
var r;


function criaObjetoXMLHTTP() {
	if(window.XMLHttpRequest)
		r = new XMLHttpRequest();
	else
		r = new ActiveXObject("Msxml2.XMLHTTP");
}

function Agenda() {
	criaObjetoXMLHTTP();
	
	r.onreadystatechange = respostaAgenda;
	r.open("GET", "agenda/agenda.asp", true);
	r.send(null);
}

function respostaAgenda() {
			
	if(r.readyState==4) {
	document.getElementById("conteudo").innerHTML = r.responseText; 
	}
}

function AgendaCadastra(){
	criaObjetoXMLHTTP();
	
	r.onreadystatechange = respostaAgendaCadastra;
	r.open("GET", "agenda/cadastra.asp?texto=" + document.getElementById("texto").value , true);
	r.send(null);
}

function respostaAgendaCadastra() {
			
	if(r.readyState==4) {
	document.getElementById("cadastra").innerHTML = r.responseText; 
	}
}


bom galer vlw pela forca
forte abraco

Edição feita por: Rafael Rocha, 14/08/2009, 04:07.


#2 nvivo

nvivo
  • Visitantes

Posted 14/08/2009, 14:22

Isso é causado por diferença de encodings.

Verifique qual encoding está sendo utilizado por cada parte. Se você posta de uma página em ISO-8859-1 direto pra um banco em UTF-8, ou vice versa você vai ter problemas desse tipo.

[]'s

#3 Rafael Rocha

Rafael Rocha

    Novato no fórum

  • Usuários
  • 19 posts
  • Sexo:Não informado

Posted 14/08/2009, 15:16

é foi o q pensei...
+ como faco para ver qual encoding esta configurado o meu banco? tentei ver so que nao consegui...
eu estou com o mysql usando no phpmyadmin....
e para mudar como faco?!
pq em minhas paginas, como pode ver estou usando o código

<%Response.AddHeader "Content-Type", "text/html; charset=iso-8859-1"%>

que eu achei na internet....

e na pagina principal, onde mostra os dados ha o codigo

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR...onal.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt-br"lang="pt-br">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

bom espero a ajuda de vcs....
vforte abraco.

#4 nvivo

nvivo
  • Visitantes

Posted 15/08/2009, 08:32

+ como faco para ver qual encoding esta configurado o meu banco? tentei ver so que nao consegui...
eu estou com o mysql usando no phpmyadmin....
e para mudar como faco?!


Dê uma olhada no manual: http://dev.mysql.com...set-syntax.html

O phpmyadmin mostra o collation usado no banco ou na tabela na listagem... deve estar bem de cara, procure por "encoding ou collation", eu não tenho idéia de como deve estar se sua versão for em português. =)

pq em minhas paginas, como pode ver estou usando o código
<%Response.AddHeader "Content-Type", "text/html; charset=iso-8859-1"%>
e na pagina principal, onde mostra os dados ha o codigo


Bem, eu ainda sou completamente a favor da pena de morte para desenvolvedores que não entendem encodings num mundo como o de hoje. Me parece que você está usando ASP clássico. Eu suspeito que o ASP já suportava unicode, mas recomendo fortemente que você saia dessa vida desumana e pule pra ASP.NET que já existe a quase 1 década e substituiu o ASP... no ASP.NET tudo é unicode e você não vai ter essas dores de cabeça.

Recomendo a leitura:
  • http://pt.wikipedia.org/wiki/Codifica%C3%A7%C3%A3o_de_caracteres
  • http://pt.wikipedia.org/wiki/Unicode
[]'s




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq