Oi, >> O problema, Eder, é que pode haver uma diferença de charset usado na >> conexão entre o cliente e o servidor mysql.
R = Obviamente que pode haver, por isso existem os locales. Tanto no banco quanto na linguagem, não entendo muito de PHP, mais em C, C++ basta passar o locale. >> 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. R = Não, defina o que é "aleatoriamente" no seu conceito acima. >> 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: R = Concordo, então no PHP set o locale, setlocale(LC_COLLATE, "pt_BR.ISO8859-1"); >> 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? R = Errado, não é necessário recompilar o MySQL para configurar isso, se ele por padrão já é compilado com suporte aos characters. mysql> SHOW VARIABLES LIKE 'coll%'; mysql> SHOW VARIABLES LIKE 'character%'; No arquivo de configuração do mysql no /etc/my.cnf basta setar o locale. [mysqld] character_sets_dir=/usr/local/share/mysql/charsets/ default-character-set=utf8 default-collation=utf8_general_ci [client] default-character-set=utf8 >> Então, me desculpe, mas listar os charsets disponíveis para as tabelas não >> resolveria o problema do nosso amigo da lista. R = Realmente digitar o comando não resolveria em nada. Att Eder, On 2/24/07, Rafael Fernandes <[EMAIL PROTECTED]> wrote: > 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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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 > >> <[EMAIL PROTECTED]> 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 > >> > > > > > > > ------------------------- > Histórico: http://www.fug.com.br/historico/html/freebsd/ > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd > -- "Do not worry about your difficulties in mathematics; I can assure you that mine are still greater." Albert Einstein ------------------------- Histórico: http://www.fug.com.br/historico/html/freebsd/ Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd