Jump to content
Fórum Script Brasil
  • 0
Sign in to follow this  
Micheus

(Resolvido) Lazarus - problema visualizando caracteres acentuados

Question

Olá pessoal,

Estou convertendo um antigo projeto do Delphi 7 para o Lazarus. Do ponto de vista do código e telas os problemas tem sido contonados.

Meu problema diz respeito à visualizão de informações cadastradas em um banco de dados. Como voces podem observar na figura, os caracteres acentuados são suprimidos ou substituídos por "?".

Algum de voces saberia como contornar este problema?

lazarusa.png

Edited by Micheus

Share this post


Link to post
Share on other sites

8 answers to this question

Recommended Posts

  • 0

Oi Micheus ... já tive esse problema , mas com outro banco de dados

voce pode montar uma rotina para ler e copiar os registros nessa tabela

ou voce pode definir na criação da tabela CHARACTER SET UTF8 COLLATE UNICODE_CI, para aceitar acentuações

abraço

Share this post


Link to post
Share on other sites
  • 0

Olá Jhonas

Voce está me dizendo que vou ter que mudar todos os char set e collate no meu banco de dados?

Que bucha! :angry:

Share this post


Link to post
Share on other sites
  • 0

O Lazarus por default é unicode, ou seja aceita vários caracteres.

veja se consegue setar o character set para todo o banco de de dados ... sei que tem uma maneira, mas não me recordo como.

a outra maneira é tentar montar uma pequena rotina para ler a tabela acentuada e transferir os registros para a outra tabela do lazarus

abraço

Share this post


Link to post
Share on other sites
  • 0

Obrigado pelas respostas.

É... Parece que não tem jeito mesmo. Mas acho uma baita sacanagem, considerando que a ferramenta se propõe a ser uma alternativa ao Delphi, no mímino deveria permitir algum tipo de compatibilidade.

Depois que eu tiver conseguido resover este problema eu posto os procedimentos aqui - para o caso de mais alguém precisar.

Share this post


Link to post
Share on other sites
  • 0

Consegui alguns comentários também no forum do Lazarus (Wrong character displayed)

Uma solução que resolve meu problema facilmente (não definitivamente) foi a sugestão de mudar na conexão do banco o parâmetro lc_ctype de WIN1252 para UTF8. (este post)

Funcionou imediatamente.

Questionei sobre algum efeito colateral, já que o banco ainda está configurado para WIN1252 e, segundo outro usuário, a possibilidade existe se eu usar algum caracter que não esteja no conjunto UTF8. Bom, consideranda a aplicação atual, só mesmo os caracteres "comuns" entre os dois estão sendo utilizados. Isto vai me dar um bom tempo para pensar em como fazer a bendita migração.

Abraços

Edited by Micheus

Share this post


Link to post
Share on other sites
  • 0

Interessante, agora que você disse isso eu lembrei! No IBExpert (Administrador de bancos Firebird) também possui essa opção de escolher o charset ao conectar no banco! hehe

Share this post


Link to post
Share on other sites
  • 0

Existe uma opção no projeto. i18n para internacionalização.

Tente setar esta opção. (projetos->opções de projetos->i18n->Ativar i18n)

No BD use o comando ALTER DATABASE `base`CHARSET = Latin1 COLLATE = latin1_swedish_ci;

Testado no MySQl.

Espero que ajude.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  



  • Forum Statistics

    • Total Topics
      148431
    • Total Posts
      643863
×
×
  • Create New...