Posso converter meu banco de dados / script em UTF-8?

2

Como posso converter um banco de dados para suportar UTF-8 e converter seus dados antigos a partir de qual codificação eles estão em UTF-8?

Informação extra: Estou executando um servidor que tem muitos sites, e um deles está executando o WHMCS (script php para gerenciar clientes de hospedagem). WHMCS tem um aplicativo para iPhone onde eu posso navegar através do iPhone, o problema é que este aplicativo só será executado se tudo no meu site estiver em codificação UTF-8.

Eu estava usando o windows-1256 como codificação nas configurações do meu script, e eu tentei mudar isso em algum ponto do tempo para UTF-8 por um tempo e depois mudei de volta para o windows-1256

então, os dados no banco de dados são alguns inseridos usando padrões UTF e a maioria deles são windows-1256

Se alguém puder limpar a foto para mim, preciso converter cada banco de dados no servidor ou apenas um banco de dados? o que devo mudar?

Se eu tivesse que fazer isso manualmente, farei isso, mas preciso de um especialista.

    
por Mohannad Otaibi 29.06.2010 / 06:50

3 respostas

2

A codificação do banco de dados é normalmente definida quando você cria o banco de dados (certamente para o Postgres). Uma maneira de corrigir isso é exportar, criar um novo banco de dados e, em seguida, reimportar. Este link pode ser suficiente .

No entanto, a codificação do aplicativo pode ser diferente do banco de dados. Isso significa que o aplicativo envia o UTF-8 e, quando lê o banco de dados, converte a codificação do banco de dados em UTF-8. Isso normalmente é feito na conexão com o banco de dados ( veja essa função PHP ).

Portanto, se você tiver acesso ao código-fonte (deve ser o caso), localize onde o aplicativo faz a conexão e defina a codificação para sua base de código do banco de dados. Em seguida, localize onde o aplicativo ou o Apache definiu a codificação de saída e configure-a como UTF-8. Isso deve fazer o truque.

    
por 05.01.2011 / 15:22
0

Como o WHMCS é um aplicativo comercial, entre em contato com o fornecedor para obter suporte sobre como converter o conteúdo do banco de dados da codificação existente para UTF-8 - particularmente porque nem todos os aplicativos funcionam bem com dados UTF-8 (a classificação / agrupamento e pesquisa são freqüentemente afetados). O MySQL e o CentOS podem requerer alguma configuração, enquanto o PHP provavelmente não irá, já que ele não suporta diretamente o UTF-8, embora os aplicativos PHP possam usar o UTF-8.

A conversão de um aplicativo existente para o UTF-8 não é um exercício trivial, embora deva ser possível com algum suporte.

Pode haver uma opção mais simples, como escrever um filtro para uso somente quando o iPhone estiver usando a página. Se você puder garantir que não há nenhum caractere de 8 bits definido em qualquer lugar da interface do usuário ou do banco de dados (ex. ASCII), você pode simplesmente definir a codificação para UTF-8 na saída, mas isso pode ser arriscado. p>     

por 05.09.2011 / 11:43
0

Crie um arquivo de banco de dados e converta-o em UTF-8 através do seguinte comando:

iconv -f WINDOWS-1251 -t UTF-8 $yourfilename.icv > $file

    
por 08.01.2016 / 17:16