[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