Ir para conteúdo

POWERED BY:

Arquivado

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

yogodoshi

Erro de acentuação (pra variar)

Recommended Posts

Problema de acentuação dentro do drop-down que lista as cidades do Estado.

 

Meu java script:

try{	xmlhttp = new XMLHttpRequest();}catch(ee){try{	xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");}catch(e){try{	xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");}	catch(E){xmlhttp = false;}}}	function ajax() {		xmlhttp.open("POST", "sys_cidades.asp?estado=" + document.getElementById('estado').value ,true);		xmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded; charset=iso-8859-1');		xmlhttp.onreadystatechange=function() { 					document.getElementById('divmodelos').innerHTML = '<font size="1" face="tahoma">Aguarde...</font>'		   if(xmlhttp.readyState == 4){					document.getElementById('divmodelos').innerHTML = xmlhttp.responseText				}}			xmlhttp.send('aloha') }
Meu HTML do campo de Estado/ cidade:

<tr align="left">		  <td>Estado:</td>		  <td><select name="estado" size="1" id="estado" onchange="ajax();">			<option value="" selected="selected">Selecione o Estado</option><%sql = "SELECT id_estado, estado from estados order by estado"set ObjRs = banco.Execute(sql)	 While NOT ObjRs.EOF	 %>	 <option value="<%=cint(ObjRs("id_estado"))%>"><%=ObjRs("estado")%></option> 	 <%	  ObjRs.MoveNext	 Wend	 ObjRs.closeset ObjRs = nothing%>			</select></td>		</tr>		<tr align="left">		  <td>Cidade:</td>		  <td><div id="divmodelos"><select name="cidade" class="campos" id="cidade">		<option value="0">Escolha o estado primeiro</option>		</select></div></td>		</tr>

<!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" /><meta http-equiv="Content-Language" content="pt-br" /></head><% Response.Charset="ISO-8859-1"	Dim banco   	Dim strConexao   	strConexao="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../banco/dados.mdb")   	SET banco = SERVER.CreateObject("ADODB.CONNECTION")	Set rs_cidade = Server.CreateObject("ADODB.Recordset")   	banco.OPEN strConexaoestado = request.querystring("estado")estado = replace(estado,"'","")estado = cint(estado)sql_cidade = "SELECT cidade FROM cidades WHERE id_estado = " & estado & " ORDER BY cidade"rs_cidade.Open sql_cidade, banco,3,3%><select name="cidade" class="campos"><%While NOT rs_cidade.eof%>  <option value="<%=rs_cidade("cidade")%>"><%=rs_cidade("cidade")%></option><%rs_cidade.movenextwendrs_cidade.closeset rs_cidade = nothing%></select>

Como vocês podem ver, defini como iso-8859 de todas as maneiras possiveis e em todos os arquivos e mesmo assim o problema de acentuação continua...

 

alguem sabe a solucao?

Compartilhar este post


Link para o post
Compartilhar em outros sites

como assim?se a página que salva os arquivos no banco estava em outra codificacao? Nao sei...eu copiei essa tabela de outro banco... e agora como faço? Existe a opcao no access de definir a codificacao?

Compartilhar este post


Link para o post
Compartilhar em outros sites

é o seguinte... muitas ferramentas de administração de banco de dados usam UTF-8 por padrão, se você tiver usado uma dessas é porque a codificação dos dados está errada.se você estiver vendo "São Paulo", é porque os dados estão em UTF-8 mesmo, se você estiver vendo "S?o Paulo" seu programa tem algum erro na hora de definir a codificação.Dê uma olhada no seu editor quanto no browser para ver qual codificação está usando

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu estou vendo "S?a Paulo"agora dar uma olhada no meu editor quanto no browser? =S n entendi...Eu to usando o Access, o browser que estou usando está com codificacao iso 8859-1...

Compartilhar este post


Link para o post
Compartilhar em outros sites

então o seu problema é mais profundo. o ISO-8859-1 não possui caracteres ilegais. O seu programa deve estar tentando obter os dados como alguma outra codificação e por isso não está conseguindo entender caracteres extendidos. Tenho a impressão que o ASP usa UTF-8 por padrão, então você tem que implicitar em algum lugar qual a codificação usada para obter as informações.

 

mas Access? Pensei que você disse que estava usando um banco de dados http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas no access eu vejo os caracteres normalmente e se o charset de saida estah como iso 8859, ele estah convertendo para iso antes de mostrar no ASP não é?ainda nao sei onde está o erro... =/Outra dica que pode ajudar vocês, se eu vou direto na página: seleciona_cidades.asp?estado=1 por exemplo. o drop-down fica normal, sem erro de acentuação...

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que parece ser seu problema é que o banco de dados está convertendo o charset antes de enviar e por isso o ASP não está entendendo.

 

não te dou certeza porque não sou muito de ASP e muito menos Access, mas já tive exatamente o mesmo problema ao tentar fazer saída em UTF-8 sendo que o MySQL usa ISO-8859-1 como padrão.

 

no caso eu resolvi com a consulta "SET NAMES UTF8", e pra ISO-8859-1 seria algo do tipo "SET NAMES LATIN1". assim se o access for no mesmo esquema do MySQL, você teria que passar esse comando

 

sql = "SET NAMES LATIN1"banco.Execute(sql)

se não der certo já é fora do meu conhecimento porque não mexo com access

Compartilhar este post


Link para o post
Compartilhar em outros sites

não entendi direito =S

você quer que eu execute essa sql na conexao com o banco de dados antes de executar a sql que vai puxar os resultados?

 

e de qualquer jeito vlw a ajuda!

 

-----------------------------------------------------------------------------------

Post Mesclado

-----------------------------------------------------------------------------------

 

encontrei a solucao:

é só dar html.encode na hora de puxar do banco:

<option value="<%=Server.HTMLEncode(rs_cidade("cidade"))%>"><%=Server.HTMLEncode(rs_cidade("cidade"))%></option>

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.