Jump to content

Archived

This topic is now archived and is closed to further replies.

micox

[Resolvido] [Dica] Solução final para acentuação no Ajax

Recommended Posts

Érrr....So q agora tem um problema chato, estou usando POST em um formulario e a pagina postada q é ASP eu tenho um INSET INTO num bd SQLServer 2000.Ao salvar no db, os caracteres com acentos vao todo doidao. dai entao resolvi fazer um teste de dar um SELECT no registro q acabei de inserir o proprio POST Ajax retorna o cacter certissimo! mas quando vou ver no db ta doidão... :SEu ja li tudo aki neste forum ja pus akeles charsets(UTF-8,ISO-8859-1) na pagina ASP e nada..Tb ja mexi no self.xmlhttp.setRequestHeader do meu AJAX e nada...O que será??????????????????????

Share this post


Link to post
Share on other sites

Ah, lembre-se que minha solução SÓ serve para recepção dos dados do PHP, não serve para o ENVIO dos dados para o PHP.

 

Para o envio dos dados, você tem que usar algum tipo de encodagem.

 

Leia este link:

http://phpbrasil.com/articles/article.php/pagerRow/0/id/1182

 

e este:

http://www.imasters.com.br/forum/lofiversi...hp/t189133.html

Share this post


Link to post
Share on other sites

novidades. o problema não me parece q seja do Ajax.

eu não estou usando AJAX nenhum...aliás nem sei o q isso é.

Tenho uma BD Mysql e tb tenho esse problema dos "?".

iso-> configurado e confirmadissímo.

a página na web -> funciona bem.

quando envio para o email... todos os caracteres latinos q vem das strings de PHP passam a "?".

o html q é introduzido manualmente funciona no email e na página online.

 

acho q vou juntar uma turma e fazer um eXorcismo ao php.

 

http://forum.imasters.com.br/public/style_emoticons/default/devil.gif

Share this post


Link to post
Share on other sites

Estou com problema na hora de enviar os dados por post. Estou usando Asp, já tentei por encode e colocando charsets(UTF-8,ISO-8859-1) e não funciona.já nao sei o que fazer

Share this post


Link to post
Share on other sites

Se crio uma função para trocar os acentos pelo codigo html será que funciona?tipo: coração = coraçãoFunction acento(ByVal strEntry) strEntry = replace(strEntry , "ç", "ç") strEntry = replace(strEntry , "ã", "ã") ...acento = strEntry End Function será que funcionaria?

Share this post


Link to post
Share on other sites

Agradecendo ao Micox e aos demais, segue a minha contribuição:Acentução AJAX para JAVA SERVLET:Logo após o doPost ou doGet, acrescente essas linhas: response.setContentType("text/html;"); response.setCharacterEncoding("iso-8859-1");Vicente Domingos

Share this post


Link to post
Share on other sites

P##a, comigo nao funcionou.Quer dizer, funcionou em partes, o Firefox esta OK, ja no IE deu pau. Continua com acentos. Alguma solução?Estou usando ASP+ajax. Alguma solução ai?Frederico

Share this post


Link to post
Share on other sites

tava vendo uns trabalhos antigos e me deparei com esse problema tbm...

 

defini o código princinpal como padrão, no topo do documento:

 

<?php header("Content-Type: text/html; charset=ISO-8859-1",true) ?>

<html>...

 

 

isso resolveria e o q vinha do meu XML defini:

 

<?php header("Content-Type: text/html; charset=UTF-8",true) ?>

<div id="conteudo_card">...

 

pois o conteúdo dele ñ estava na forma correta (ex: cardápio = cardápio) como segue abaixo

 

<?xml version="1.0" encoding="ISO-8859-1" ?>

<cardapio>

<pizza>

<num_pizza>RÚCULA COM TOMATE SECO</num_pizza>

<foto_pizza></foto_pizza>

<valor_p>13,90</valor_p>

<valor_m>16,90</valor_m>

<valor_g>19,90</valor_g>

<ing_pizza>mussarela, rúcula e tomate seco</ing_pizza>

</pizza>

.

.

.

<cardapio>

 

isso resolveu meu problema...

 

***OBS: o site so aparecia com problema de acentuação no meu servidor local, mas na net ñ...

 

confiram as paginas onde utilizei o codigo acima:

 

http://fargiorno.com/nosso-cardapio.php

http://fargiorno.com/_xml/cardapio_01.xml

 

http://qinling.com.br/cardapio_e.php

http://qinling.com.br/_xml/coz_01.xml

 

ambos possuem um parser XML...

 

caso ai apareça algum problema com acentuação retornem por favor...

 

agora procuro sempre utilizar a forma correta de acentuação (da um pouco mais de trabalho, mas da menos dor de cabeça depois)...

 

desde já agradeço a atenção e espero ter ajudado

Share this post


Link to post
Share on other sites

Amigos tentei fazer em coldfusion mas não consegui alguém sabe como?

 

<header("Content-Type: text/html; charset=iso-8859-1");><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><cfcontent type="text/html; charset=iso-8859-1">

 

Jah tentei de tudo mas ainda assim exibe erro por causa das acentuações

 

 

Help! Please!

Share this post


Link to post
Share on other sites

Esta gravando assim no bd.coração grava Coraçãojá nao sei o que fazer.

Além de setar o cabeçalho da pagina para ISO-XXXantes de você enviar pro BD trate a variavel com <?php utf8_decode($string); ?>

Share this post


Link to post
Share on other sites

Pow esse negocio ta me deixando loucoja mudei o httpd e nd dessa &*¨$*%@ do Apache mudarja tentei usar utf8_decode na pagina q recebe o POST e ndfora essas outras tecnicas mirabolantes hehehehehps: sim tds minhas paginas estao com o charset definido no HEADER e meu banco tb=/

Share this post


Link to post
Share on other sites

E ai galera...

to usando php aqui e só pra complementar o topico, faltou um ponto e virgula aqui:

 

<?php header("Content-Type: text/html; charset=ISO-8859-1",true); ?>

outra coisa pra quem recebe dados o idela é além de colocar esse header ai de cima é recuperalos da seguinte forma:

 

$var = utf8_decode($_POST['var']);

ps. se estiver errado me corrijam...

Share this post


Link to post
Share on other sites

Meus amigos depois de uma pesquisa longa resolvi o problema do ajax, pelo menos com posts, antes de adicionar qualquer coisa no php com ajax você coloca antes esta função:foreach ($_POST as $key => $valor ){ $_POST[$key] = utf8_decode($valor);}ela converte todos os Posts e eles serão inseridos no banco de dados sem problemaspara resolver problemas de consulta você dá um urlencode no dado que você quer do php e na página que recebe os dados você imprime com a função decodeque é esta aqui: function decode(str) { return unescape(str.replace(/\+/g, " "));} qualquer dúvida me envia um email: mlguardia@click21.com.br, sem vírus e sem spam pq não sou bobo hein,abraços

Share this post


Link to post
Share on other sites

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.