Ir para conteúdo

POWERED BY:

Arquivado

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

Sandler Riot

Problemas com caracteres vindo do MySQL

Recommended Posts

As vezes o negócio agarra de um jeito que nenhuma das soluções apresentadas acima resolve.

 

O que fazer então?

 

Basta gravar no banco de dados a string com htmlentities ou seja, fazer a conversão dos caracteres acentuados para os caracteres do htmlentities, antes de gravar no banco de dados a string. Exemplo: á -> á

 

function converte_string($text, $debug_on){

	$acentuadas	= array('á', 'Á', 'ã', 'Ã', 'â', 'Â', 'à', 'À', 'é', 'É', 'ê', 'Ê', 'í', 'Í', 'ó', 'Ó', 'õ', 'Õ', 'ô', 'Ô', 'ú', 'Ú', 'ü', 'Ü', 'ç', 'Ç');
	$convertidas   = array('á', 'Á', 'ã', 'Ã', 'â', 'Â', 'à', 'À', 'é', 'É', 'ê', 'Ê',  'í', 'Í', 'ó', 'Ó', 'õ', 'Õ', 'ô', 'Ô', 'ú', 'Ú', 'ü', 'Ü', 'ç', 'Ç');
	$saida  = str_replace($acentuadas, $convertidas, $text);
	
	if ($debug_on){
		echo $saida;
		var_dump($saida);
	}
	
	return $saida;	  
}

Como usar essa função?

 

Supondo que você submeteu um formulário HTML com um textarea com nome field.

No script php que irá tratar o formulário basta aplicar a função definida acima, veja:

 

//todos os caracteres acentuados serao convertidos para htmlentities
$texto_convertido = converte_string($_POST['field']);

Depois disso é só executar a query e gravar a string no banco de dados.

O bom disso é que vai funcionar sempre, independente da condificação que você estiver usando.

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.