Pergunta

Eu estou migrando meu blog WordPress e phpBB Fórum para um novo servidor de hospedagem. Eu estou usando o phpMyAdmin para importar o script SQL do banco de dados no site anterior.

Quando abro o script .sql com Kate, ele diz que usa UTF8 como codificação. Quando eu importar o sql no novo servidor, eu tenho a opção de phpMyAdmin para escolher a codificação, onde utf8 é selecionada por padrão.

Ainda assim, quando eu terminar de importar o banco de dados, eu li o texto mensagens diretamente no phpMyAdmin, e ver personagens como "é", "N", etc. que não tenham sido "interpretado" e foi substituído com caracteres estranhos insted.

Eu posso ver minha instalação do WordPress não está funcionando também. Aparentemente há um problema com essa coisa de codificação, mas eu acho que o problema está no banco de dados MySQL ou phpMyAdmin e não WordPress.

As versões do MySQL são praticamente os mesmos, MySQL 5, mas uma revisão diferente. Além disso, não havia nenhum problema ao migrar o banco de dados do fórum, então isso é ainda mais estranho ...

Eu estou perdido quanto à forma de corrigir isso ... Todas as ideias são bem vindas.

Foi útil?

Solução

Você tentou acrescentando

SET NAMES 'utf8';

para o seu despejo sql?

A coisa com utf8 ou codificações em geral é que, para ser bem sucedido, você tem que certificar-se de que:

  • o arquivo é utf8 codificado sem a assinatura
  • a codificação padrão do servidor MySQL está definido como utf8
  • a conexão é utf8 (é por isso que você colocou SET NAMES 'utf8' em seu sql-file).
  • todas as tabelas e colunas têm a codificação direita e charset
  • todos os seus webfiles tem que ser utf8 codificado bem. E ele não funciona apenas para adicionar o cabeçalho correto. Você tem que abrir o arquivo, verifique se a codificação é UTF-8, se não, corte tudo, alterar a codificação para UTF-8 e colar tudo de volta. Ele não funciona, se você acabou de alterar a codificação e salve o arquivo!

Outras dicas

Muito obrigado por suas respostas. Eu encontrei a solução, e eu me sinto realmente estúpido não ter percebido isso antes. Tudo era para funcionar bem:

-File foi codificado com UTF-8 -Tables foram declarados com utf8:

SET character_set_client = utf8;
servidor -MySQL foi configurado com utf8 Etc.

O que eu não sabia que em primeiro lugar é que eu estava usando um backup de banco de dados assistente de backup do cPanel. Assim que percebi isso, usei phpMyAdmin no servidor antigo para exportar o banco de dados, importados no novo servidor, e pronto, problema resolvido.

phpMyAdmin entende phpMyAdmin melhor do cPanel: P Aparentemente cPanel exporta o script para que possa ser importado com a própria cPanel. Isso teria provavelmente trabalhou bem, mas confio phpMyAdmin melhor.

Muito obrigado por suas respostas embora.

Eu apenas correu pelo mesmo problema, desde que eu lutei com ele por cerca de uma hora e quebrou muitos dos meus sites, eu percebi que eu olhar e ver se alguém estava lutando com ele e postar uma solução: A solução simplesmente é para especificar o conjunto de caracteres de importação na importação.

Se você tiver acesso SSH para o seu acolhimento, primeiro solte todas as suas tabelas novamente em novo banco de dados novamente, então executar este comando na sessão SSH (assumindo que o seu arquivo de despejo de idade é olddatabase.dump.sql ):

$ mysql -h hospedeiro -u nome de usuário -p password --default-character-set = utf8 banco de dados

Esta é a maneira mais simples e mais fácil de resolver o problema.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top