Ir para conteúdo

POWERED BY:

Arquivado

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

Tribb

[Resolvido] Erro estranho acentos (ajax + mysql)

Recommended Posts

Bom nao consegui resolver sozinho nem achar solução na net entao aqui estou eu..

 

Estou fazendo uma classe para postar items em uma loja virtual. Bom. A sql suporta acentos, mas quando eu executo a query parece que eles sao automaticamente convertidos c/ htmlentities. Mas apenas se eu utilizo $this->var;

 

INSERT INTO `cp_store` (`id`, `description`) 
VALUES ('. $this->ID. ', 'çç ÇÇ ÃÃ'.$this->Description)

 

O que eu escrevi entre o 'çç ÇÇ ÃÃ' é registrado normalmente na sql. Ja o $this->Description fica como çç ÇÇ ÃÃ. Eu dei um echo no $this->Description antes de passar ele para query e os acentos estavam normais.

 

Basicamente o codigo é esse:

mb_internal_encoding("UTF-8");
mb_http_output( "iso-8859-1" ); 
ob_start("mb_output_handler");   
header("Content-Type: text/html; charset=ISO-8859-1",true);

class STORE {
function postItem() {
	mysql_query('
		INSERT INTO `cp_store` (`id`, `description`) 
		VALUES ('. $this->ID. ', '. $this->Description. ')
	') or die(mysql_error());
return;
}
}

$vStore = new STORE;


$vStore->ID = $_GET['key_id'];
$vStore->Description = $_GET['item_desc'];

$vStore->postItem();

 

Bom so puis o básico do codigo.. Realmente eu nao entendo pq quando eu escrevo diretamente na query o acentos sao gravados, e quando eu passo pela variavel eles sao convertidos.. Alguem saberia o porque?

 

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado, ótimo artigo. Entendi o problema.

 

Entendi pq quando dou echo nesta variavel no browser os acentos são exibidos corretamente e quando tento inserir no mysql não.

 

Grato...

 

Caso alguem queira saiber como corrigir. Eu apenas mudei o header para utf-8 e usei o utf8_decode().

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.