Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Reparar acentuação dos textos gravados no banco de dados MySQL

16-03-2016 20:33

Nesse post vou mostrar como converter os dados ou caracteres de palavras acentuadas no banco de dados MySQL.

Esse problema geralmente ocorre porque o Agrupamento ou collation da coluna está como utf8_bin. Isso faz com que os registros novos que tem palavras com acentos fiquem errados no banco de dados.

A primeira coisa é colocar o collation correto. Para isso você precisa rodar o seguinte sql

ALTER TABLE `minha_tabela` CHANGE `coluna` `coluna` VARCHAR(50) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL;

minha_tabela = sua tabela
coluna = coluna onde os caracteres estão com problemas
VARCHAR(50) = é o tipo do campo

Essa alteração via afetar o tipo do collation da coluna mas não os dados já salvos com os caracteres errados.

Para consertar os caracteres errados você precisa fazer um UPDATE da seguinte forma:

SELECT coluna_com_problema FROM sua_tabela

Dentro do while você precisa do seguinte:

$novo_nome = iconv("UTF-8", "ISO-8859-1",$coluna_com_problema);

Onde $coluna_com_problema é a string que vai retornar o valor da coluna.

Depois você precisa fazer o seguinte UPDATE logo abaixo da linha acima:

UPDATE sua_tabela SET coluna_com_problema='$novo_nome'
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado