[FUG-BR] Mysql não aceita acentos.
Rafael Fernandes
ragatol em netsite.com.br
Sábado Fevereiro 24 18:37:22 BRT 2007
O problema, Eder, é que pode haver uma diferença de charset usado na
conexão entre o cliente e o servidor mysql.
Normalmente, no módulo php, isto acarreta em aleatoriamente você receber
os dados em latin1 e utf-8, mesmo quando uma tabela está com a opção de
charset em latin1. E o problema continua mesmo depois de mudado o charset
de uma tabela que era utf-8 para latin1. Como disse, não é um problema no
chaset usado pelo servidor, mas sim pela conexão entre o servidor e um
cliente mysql, pois nessa ele tenta fazer uma conversão de charsets. Leia
sobre isto aqui:
http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html
Este problema aconteceu comigo quando migrei um banco de dados de um
servidor para outro. Como o charset da tabela não foi alterado, não era
para ocorrer este tipo de problema. E a única diferença entre um servidor
e outro era que o charset padrão usado nas conexões era diferente (latin1
no antigo, utf-8 no novo).
A única coisa que fez os resultados de queries serem consistentes foi
certificando que ambos os binários (cliente e servidor) usavam o mesmo
charset padrão para conexões. E infelizmente isto fica compilado com os
binários, não fica em um arquivo de configuração. Senão não precisaríamos
de ajustar esta opção ao compilar o mysql, certo?
Então, me desculpe, mas listar os charsets disponíveis para as tabelas não
resolveria o problema do nosso amigo da lista.
Até,
Rafael.
On Sat, 24 Feb 2007 15:20:04 -0200, Eder <ederbsd em gmail.com> wrote:
> Olá,
>
> Basta alterar o character sets.
>
> mysql> SHOW CHARACTER SET;
>
> http://dev.mysql.com/doc/refman/5.0/en/charset-mysql.html
>
> Att, eder.
>
> On 2/23/07, Rafael Fernandes <ragatol em netsite.com.br> wrote:
>> É amigo eu passei por isto e normalmente o mysql fica com o charset
>> compilado tanto no servidor quanto no cliente (ou bibliotecas usadas por
>> outros programas, no caso o php).
>> O que solucionou meu problema 100% foi recompilar o mysql-server (se não
>> me engano, isto já recompila a biblioteca mysql-server, mas confira).
>> Recompile também o módulo mysql do php se ele foi linkado estaticamente
>> com a biblioteca mysql.
>>
>> Lembre-se sempre que usamos latin1/iso-8859-1 (são a mesma coisa) e irá
>> evitar muita dor de cabeça.
>>
>> Até,
>>
>> Rafael.
>>
>> On Fri, 23 Feb 2007 11:56:32 -0200, Rafael Stockler
>> <rafael.stockler em gmail.com> wrote:
>>
>> > Bom dia a todos,
>> >
>> > Estou com o seguinte problema.
>> >
>> > Tenho aqui instalado o Apache 2, php 5 e mysql 5.
>> >
>> > O problema que estou enfrentando é o fato de o mysql não estar
>> > cadastrando palavras com acentos. Verifiquei se o php estava mostrando
>> > certo e pelo q vi sim.
>> >
>> > O charset no mysql eh o utf8-general. Jah tentei colocar o latin 1 e
>> > outras e nada.
>> >
>> > Alguem já passou por isso ou saberia o q pode ser isso?
>> >
>> > Vlw.
>> > -------------------------
>> > Histórico: http://www.fug.com.br/historico/html/freebsd/
>> > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>>
>>
>> -------------------------
>> Histórico: http://www.fug.com.br/historico/html/freebsd/
>> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>>
>
>
Mais detalhes sobre a lista de discussão freebsd