Bom não consegui resolver sozinho nem achar solução na net então 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 são automaticamente convertidos c/ htmlentities. Mas apenas se eu utilizo $this->var; Exemplo: INSERT INTO `cp_store` (`id`, `description`)
VALUES ('. $this->ID. ', 'çç ÇÇ ÃÃ'.$this->Description)
O que eu escrevi entre o 'çç ÇÇ ÃÃ' é registrado normalmente na sql. já 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 não entendo porque quando eu escrevo diretamente na query o acentos são gravados, e quando eu passo pela variavel eles são convertidos.. alguém saberia o porque? Grato.