Dois drivers no pacote da MySQL AB e charsets infernais
11 respostas
renatosilva
Caras que coisa irritante esses charsets. Nós aqui fazemos uma consulta no MySQL (Latin 1) e no HTML gerado aparece ? no lugar de acentuados, cedilhas etc. Bem, dei uma pesquisada aqui e lembro de uma parada de substituir drivers. Bem o problema está “resolvido”, mas eis que vos pergunto:
Alguém sabe por que que o pacote MySQL Connector da MySQL AB vem com dois drivers, org.gjt.mm.mysql.Driver e com.mysql.jdbc.Driver?
E por que que trocando o segundo pelo primeiro meu problema acabou? :?
PS: no prompt do Windows rodo uma classe (que usa o segundo driver se não me engano) que um colega fez e na saída do comando eu consigo ver os caracteres direito usando -Dfile.encoding=cp850, e no Linux nem é necessário essa opção. Alguém compreende o por quê dessas coisas?
org.gjt.mm.mysql.Driver eh o driver antigo, e somente existe por compatibilidades. Porem, ele aponta para o oficial, portando vc nao deveria estar tendo diferencas entre um ou outro.
Encoding eh complicado, e voce tera diferentes situacoes dependendo da maquina onde o sistema rodar. Ha um stick aqui no guj sobre o assunto.
Rafael
renatosilva
:shock: :?
Rafael Steil:
…diferentes situacoes dependendo da maquina onde o sistema rodar…
:shock: :shock: Não me diga essas coisas que me dá calafrios…
Bem um dia a luz virá sobre mim e me explicará esse fato paranormal então…
Caras descobri que com um pacote mais antigo mysql-3.0.8.jar é que os caracteres aparecem corretamente, eu estava usando o mysql-connector-java-3.1.6-bin.jar. Bom como eu acho melhor usar o driver mais novo, vou pesquisar quando puder como configurat o charset no driver, acho que tem como.
louds
Por que no windows funciona diferente do linux? O charset padrão, também conhecido por nativo, é diferente.
No windows é o cp850, no linux isso pode ser configurado. Por padrão eu sempre configuro para usar iso-8859-1 ou utf-8.
Rafael_Steil
O 3.1.6 me pareceu estupidamente ruim. No JForum eu estou com o 3.1.4-beta e funciona perfeitamente com todas as versoes do mysql, inclusive as mais novas. Porem, basta mudar para o 3.1.6 que exceptions bizarrissimas comecam a acontecer pelo sistema.
Rafael
renatosilva
louds:
Por que no windows funciona diferente do linux? O charset padrão, também conhecido por nativo, é diferente.
No windows é o cp850, no linux isso pode ser configurado. Por padrão eu sempre configuro para usar iso-8859-1 ou utf-8.
Bem queimando meus neurônios cheguei à seguinte teoria:
O driver antigo joga o Latin-1 do banco como saída, mas o Windows tenta ler usando outro encoding e aparece aqueles ??, o que pra mim parece ser um encoding de Unicode. As questões são:
Por que, mesmo no driver antigo, só com -Dfile.encoding=cp850 a coisa funciona? O que seria esse cp850? Isso é um encoding de Unicode? As opções -Dfile.encoding=UTF-8, -Dfile.encoding=iso-8859-1 (=latin1) e -Dfile.encoding=latin1 não funcionam.
Por que no Linux funciona sem opção nenhuma? Provavelmente meu colega não alterou o encoding padrão que é UTF-8 né? Será que é uma opção “file.encoding” padrão?
No caso da web, o Tomcat é que gera a saída do JSP, e funciona normal com o driver antigo, mas no Windows tem que usar esse cp850 com falei acima. Uai?
Rafael Steil:
O 3.1.6 me pareceu estupidamente ruim. No JForum eu estou com o 3.1.4-beta e funciona perfeitamente com todas as versoes do mysql, inclusive as mais novas. Porem, basta mudar para o 3.1.6 que exceptions bizarrissimas comecam a acontecer pelo sistema.
Rafael, poderia me dar um link para esse driver que você usa, que é mais novo do que o meu que não dá problema? É que quero distribuir o driver mais novo possível.
PS: vou ver se instalo ainda hoje o JForum aqui na intranet da empresa. Bem queria perguntar uma coisa a respeito, já que você é o mantenedor: não existe um projeto para estender o JForum a um “sistema de conteúdo” como o Xoops por exemplo?
Rafael_Steil
Voce pode pegar na pagina de downlad do connector/j mesmo. La no ftp tem todas as versoes.
As razoes para o encoding funcionar em uma versao duma maneira e em outra versao de outra maneira geralmente sao pq os desenvolvedores refatoram o codigo por algum motivo. Para ter certeza mesmo, o melhor seria vc verificar com eles.
Nao, nao tem nenhum projeto assim baseado no jforum ainda. Pelo menos nao que eu saiba.
Rafael
pcalcado
renato3110:
PS: vou ver se instalo ainda hoje o JForum aqui na intranet da empresa. Bem queria perguntar uma coisa a respeito, já que você é o mantenedor: não existe um projeto para estender o JForum a um “sistema de conteúdo” como o Xoops por exemplo?
OFF topic vindo… que tal SnipSnap?
[]s
renatosilva
Vlw.
Rafael Steil:
…Nao, nao tem nenhum projeto assim baseado no jforum ainda. Pelo menos nao que eu saiba.
Rafael
Bem estou te perguntando isso porque o que eu quero é montar um site da informática com outroas coisas e não apenas um Fórum, entende? Eu pensei que o GUJ 2.0 fosse uma coisa dessas e baseado no JForum.