latin-1 para utf-8 database

9

Eu tenho um banco de dados que é uft8_general_ci, só que o problema é até este ponto que um aplicativo codificado por um desenvolvedor anterior parece ter trabalhado com o banco de dados em latin-1.

Desde então, mudei a forma como o aplicativo usa o banco de dados e agora pode armazenar um trema como um trema em vez de ¼. O problema agora é que o aplicativo lê os dados previamente existentes do banco de dados como (exemplo) 'Süddeutsche' em vez de 'Süddeutsche'.

Existe alguma maneira de converter os dados dentro do banco de dados de um formato para o outro?

Atenciosamente

Editar:

ALTER TABLE TableName MODIFY ColumnName ColumnType CHARACTER SET latin1;
ALTER TABLE TableName MODIFY ColumnName ColumnType CHARACTER SET binary;
ALTER TABLE TableName MODIFY ColumnName ColumnType CHARACTER SET utf8;

Isso funcionou para mim.

    
por mr12086 16.01.2012 в 12:47

3 respostas

1

link

Usar o que está listado aqui corrigiu todos os meus problemas. Eu usei isso com meus dados ao vivo e não tive problemas!

    
por mr12086 21.02.2012 / 18:13
2

Você pode tentar SET NAMES deixar o banco de dados falar em latin-1 com seu aplicativo enquanto armazena em utf-8 ou você precisará converter todos os conjuntos de dados anteriores em utf-8 -Strings

    
por bardiir 16.01.2012 / 13:04
2

tente

ALTER DATABASE your_db DEFAULT CHARACTER SET = 'utf8' COLLATE 'utf8_unicode_ci';

e

ALTER TABLE a CONVERT TO CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci';

ALTER TABLE b CONVERT TO CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci';
ALTER TABLE c CONVERT TO CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci';

não se esqueça de substituir o 'ß':

UPDATE a SET field_1 = REPLACE(field_1, 'ß', 'ss') WHERE label LIKE '%ß%';
    
por silly 20.02.2012 / 16:18