|
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
seegeneroso Novato
Registrado: Terça-Feira, 14 de Novembro de 2017 Mensagens: 2
|
Enviada: Ter Nov 14, 2017 3:17 pm Assunto: Caracteres especiais Delphi e FireBird. |
|
|
Estou com um problema referente aos caracteres especiais.
Ao inserir determinados caracteres através da aplicação no banco (^~ç) o mesmo corrompe os caracteres.
Exemplo : MELÇ vira MELÇ.
Estou utilizando o charset WIN1252;
No banco está tudo certo, se eu der um insert através do IBExpert, não corrompe os caracteres, mas através da aplicação sim.
Porem no momento da conexão eu também informo o charset
Código: |
FDConnection1.Params.Database := FdbCaminho;
FDConnection1.Params.UserName := FdbUsuario;
FDConnection1.Params.Password := FdbSenha;
FDConnection1.Params.Add('CharacterSet=WIN1252');
try
FDConnection1.Connected := true;
FDQuery1.Active := true;
Except
raise Exception.Create
('Não foi possivel conectar no banco de dados, verifique os parametros informados, e a integridade do banco de dados!'
+ #13);
end; |
A conexão é setada os dados são inseridos, porem os caracteres especiais são corrompidos. |
|
Voltar ao Topo |
|
|
lokasso Aprendiz
Registrado: Terça-Feira, 11 de Abril de 2017 Mensagens: 174
|
Enviada: Qua Nov 15, 2017 11:31 pm Assunto: Re: Caracteres especiais Delphi e FireBird. |
|
|
seegeneroso escreveu: | Estou com um problema referente aos caracteres especiais.
Ao inserir determinados caracteres através da aplicação no banco (^~ç) o mesmo corrompe os caracteres.
Exemplo : MELÇ vira MELÇ.
Estou utilizando o charset WIN1252;
No banco está tudo certo, se eu der um insert através do IBExpert, não corrompe os caracteres, mas através da aplicação sim.
Porem no momento da conexão eu também informo o charset
Código: |
FDConnection1.Params.Database := FdbCaminho;
FDConnection1.Params.UserName := FdbUsuario;
FDConnection1.Params.Password := FdbSenha;
FDConnection1.Params.Add('CharacterSet=WIN1252');
try
FDConnection1.Connected := true;
FDQuery1.Active := true;
Except
raise Exception.Create
('Não foi possivel conectar no banco de dados, verifique os parametros informados, e a integridade do banco de dados!'
+ #13);
end; |
A conexão é setada os dados são inseridos, porem os caracteres especiais são corrompidos. |
Cara, também tive esse mesmo problema que você, o win1252 só reconhece alguns caracteres, para isso você terá que usar o charset ISO8859_1 ou UTF8 com collate UTF8, só um detalhe, você vai ter que mudar todos os campos texto do banco de dados outra solução é bloquear a digitação desses caracteres
Espero ter lhe ajudado |
|
Voltar ao Topo |
|
|
seegeneroso Novato
Registrado: Terça-Feira, 14 de Novembro de 2017 Mensagens: 2
|
Enviada: Sex Nov 17, 2017 1:41 pm Assunto: Re: Caracteres especiais Delphi e FireBird. |
|
|
lokasso escreveu: |
Cara, também tive esse mesmo problema que você, o win1252 só reconhece alguns caracteres, para isso você terá que usar o charset ISO8859_1 ou UTF8 com collate UTF8, só um detalhe, você vai ter que mudar todos os campos texto do banco de dados outra solução é bloquear a digitação desses caracteres
Espero ter lhe ajudado |
Entendi, porem o problema não é com o charset, pois quando eu insiro os mesmo caracteres através do proprio IBExpert os caracteres são aceitos.
E infelizmente mudar de charset também não é uma opção, pois todos os bancos de dados da empresa são com os mesmos charset.
Tem alguma coisa errada na minha aplicação, só não identifiquei onde ainda. Alem do charset e da collate você conhece mais alguma coisa que possa estar gerando esse problema? |
|
Voltar ao Topo |
|
|
lokasso Aprendiz
Registrado: Terça-Feira, 11 de Abril de 2017 Mensagens: 174
|
Enviada: Sex Nov 17, 2017 2:28 pm Assunto: Re: Caracteres especiais Delphi e FireBird. |
|
|
seegeneroso escreveu: | lokasso escreveu: |
Cara, também tive esse mesmo problema que você, o win1252 só reconhece alguns caracteres, para isso você terá que usar o charset ISO8859_1 ou UTF8 com collate UTF8, só um detalhe, você vai ter que mudar todos os campos texto do banco de dados outra solução é bloquear a digitação desses caracteres
Espero ter lhe ajudado |
Entendi, porem o problema não é com o charset, pois quando eu insiro os mesmo caracteres através do proprio IBExpert os caracteres são aceitos.
E infelizmente mudar de charset também não é uma opção, pois todos os bancos de dados da empresa são com os mesmos charset.
Tem alguma coisa errada na minha aplicação, só não identifiquei onde ainda. Alem do charset e da collate você conhece mais alguma coisa que possa estar gerando esse problema? |
Cara, fora o charset e o collate não sei o que poderia ser nao, pois pode ser o charset não do banco em si, mas sim o charset do componente que faz a conexão, tenta mudar apenas o charset do componente de conexao e tenta fazer um teste, as vezes da certo fazer isso, agora a outra solução é realmente bloquear esses caracteres no dbedit.
abraços |
|
Voltar ao Topo |
|
|
renanbg Colaborador
Registrado: Quinta-Feira, 12 de Abril de 2012 Mensagens: 1158
|
Enviada: Sex Nov 17, 2017 4:26 pm Assunto: |
|
|
Verifica se o collate esta WIN_PTBR |
|
Voltar ao Topo |
|
|
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|