Convertendo charset do mysql do wordpress de utf8 para latin1

fevereiro 7th, 2009 by franklin Leave a reply »

Pois então, esses dias um cliente nosso estava com problema no collation do banco mysql que o wordpress dele utiliz, metade das tabelas eram latin1 e a outra metade utf8, como o padrão do wordpress é utilizar a codificação em utf8, a gente tinha que alterar as tabelas para não aparecer aqueles caracteres estranhos no site dele, porém não basta simplismente alterar o charset da tabela, tem que alterar o tiop dos campos de texto, depois alterar o collation da tabela e depois alterar o tipo do campo novamente, ó o passo a passo:

Deve-se alterar os campos de texto para o tipo binário das tabelas que estão em latin1, então tudo que é

CHAR(valor) altera para BINARY(valor)
VARCHAR(valor) altera para VARBINARY(valor)
TINYTEXT altera para TINYBLOB
TEXT altera para BLOB
MEDIUMTEXT altera para MEDIUMBLOB
LONGTEXT altera para LONGBLOB

depois que tu fez isso, aí sim, tu muda o charset da tabela de latin1 para utf8, depois que alterar o collation da tabela, volta as configurações do campo para as originais:

BINARY(valor) volta para CHAR(valor)
VARBINARY(valor) volta para VARCHAR(valor)
TINYBLOB volta para TINYTEXT
BLOB volta para TEXT
MEDIUMBLOB volta para MEDIUMTEXT
LONGBLOB volta para LONGTEXT

salva e tá feita a bagaça :D, não te esquece que no arquivo wp-config.php a linha que defina o charset deve estar em utf8

define(‘DB_CHARSET’, ‘utf8’);

Advertisement

1 comment

  1. Mid disse:

    Estava com banco mysql do tipo latin, mudei o banco e collate das tabelas para utf8_unicode_ci, usando o comando de alter table. Na visualização do browser os caracteres estão vindo corretamente acentuado, porém no momento da inclusão, usando o php 5.2.3, as palavras acentuadas estão sendo cortadas, exemplo: atenção grava aten, no banco.
    Como posso resolver este problema?
    Obrigada!

Deixe um comentário