Gravando errado caracteres acentuados no MySql

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Jarbas
Usuário Nível 2
Usuário Nível 2
Mensagens: 82
Registrado em: 08 Dez 2005 17:48
Localização: Sao Paulo

Gravando errado caracteres acentuados no MySql

Mensagem por Jarbas »

Pessoal, bom dia, minha aplicação em xharbour console com sqllib mostra os caracteres acentuados certos , mas no MySql está ficando errado . Estou usando a gtwvw .

Mto Obrigado
Abs
Jarbas
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Tente colocar no inicio do seu PRG principal.....

Código: Selecionar todos

REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PT850 
Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Jarbas
Usuário Nível 2
Usuário Nível 2
Mensagens: 82
Registrado em: 08 Dez 2005 17:48
Localização: Sao Paulo

Mensagem por Jarbas »

Leonardo, obrigado, mas não deu certo, veja como ele grava no mysql

IST
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Tche, que estranho....mas por via das duvidas fale com o Vailton....ele concerteza...vai achar uma solução para isso....se bem que acho que não tenha muito a ver com a SQLLIB.....mas não custa nd tentar.....se eu sober de algo porto aqui !!!

Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Jarbas
Usuário Nível 2
Usuário Nível 2
Mensagens: 82
Registrado em: 08 Dez 2005 17:48
Localização: Sao Paulo

Mensagem por Jarbas »

Leonardo a primeira coisa que eu fiz foi falar com o Vailton , mas infelizmente ele não pode me ajudar, ja testei retirando do meu sistema a gtwvw e o problema persistiu acredito então q seja algo com o xharbour.
Vou continuar procurando uma solução.
Obrigado
Abs
Jarbas
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Tche, eu uso a CONTRIB do MYSQL e não tenho problema....qual versão do seu MYSQL ?

Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Jarbas
Usuário Nível 2
Usuário Nível 2
Mensagens: 82
Registrado em: 08 Dez 2005 17:48
Localização: Sao Paulo

Mensagem por Jarbas »

é MySql 5.0.37 (windows).

Abs
Jarbas
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

versão do xharbour ?
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Mensagem por Stanis Luksys »

Olá,

Tente utilizar a função HB_OemToAnsi() antes de gravar no MySQL.
Se quando vc recuperar dados do banco e exibi-los sair desconfigurado, você pode mudar o codepage na GT.

Alterando o codepage as bordas vão ficar ruins, portanto minha recomedação é usar OemToAnsi antes gravar e AnsiToOem antes de exibir.

Para facilitar ainda mais você pode colocar direto no arquivo CH que trata o comando que você utiliza, por exemplo se fosse clipper, você ia lá no CH que tem o replace e colocava o OemToAnsi lá.

Falou!
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Jarbas
Usuário Nível 2
Usuário Nível 2
Mensagens: 82
Registrado em: 08 Dez 2005 17:48
Localização: Sao Paulo

Mensagem por Jarbas »

Leonardo o xharbou é 0.99.50.

Stanis obrigado, deu certo mas eu tive q fazer assim :

field->nome:=hb_oemtoansi(_nome) ai ele gravou no MySql com os acentos, mas dessa forma eu teria um trabalho enorme, pois precisaria incluir essa função em todos os campos caracteres.

Não existe uma forma de setar isso no inicio do programa ??

Desde já mto obrigado
Abs
Jarbas
MARCELOG
Usuário Nível 4
Usuário Nível 4
Mensagens: 546
Registrado em: 15 Mar 2005 16:54
Localização: Divinópolis/MG

Mensagem por MARCELOG »

Tente alterar a lingua padrão do mysql com uma query.
Veja no manual algo do tipo "Conjunto de Caracteres" ou "Ordenação".
Talvez dê certo, você passa para o mysql a "obrigação" de alterar os caracteres.
Ou defina a mesma na criação da tabela, acho que é charset=?? ou algo do tipo.

MarceloG
Responder