ClientDataSet e acentos
Estou com o seguinte problema.
Criei uma aplicação onde tenho um TXMLTransforProvider ligado ao meu XML e ao XTR.
Um ClientDataSet ligado ao Provider e um DataSource ligando o ClientDataSet conectado a um DBGrid.
Acontece que os registros que possuem acento aparecem com caracteres estranhos.
Meu XML já está com encoding="ISO-8859-1" e o XTR também.
Alguém tem alguma idéia de como fazer a acentuação aparecer corretamente?
Grato a todos
Luiz
Criei uma aplicação onde tenho um TXMLTransforProvider ligado ao meu XML e ao XTR.
Um ClientDataSet ligado ao Provider e um DataSource ligando o ClientDataSet conectado a um DBGrid.
Acontece que os registros que possuem acento aparecem com caracteres estranhos.
Meu XML já está com encoding="ISO-8859-1" e o XTR também.
Alguém tem alguma idéia de como fazer a acentuação aparecer corretamente?
Grato a todos
Luiz
Luiz Fábio
Curtidas 0
Respostas
Alisson Santos
02/10/2012
No caso aconselho a utilizar uma função de repleace que retira acentos, pois mesmo que consiga colocar ele no xml dependenod o que for ser feito é barrado.
GOSTEI 0
Deivison Melo
02/10/2012
Recomendo que utilize uma função para remover os acentos ou mude o "encoding" para um outro que não esteja entre os encoding="ISO-8859-1" ou encoding="ISO-1251-1", que aceitam acentuação.
função abaixo:
function TiraAcentos(Texto: string): string;
var
Contar, Posicao: integer;
Acentos, TiraAcentos: string;
begin
Acentos := 'áäàãâÁÄÀÃÂéëèêÉËÈÊíïìîÍÏÌÎóöòõôÓÖÒÕÔúüùûÚÜÙÛçÇ+'; //Acrecentei um sinal de + e troque por um espaço em branco com observado na mesma função
TiraAcentos := 'aaaaaAAAAAeeeeEEEEiiiiIIIIoooooOOOOOuuuuUUUUcC ';
Result := '';
for Contar := 1 to Length(Texto) do begin
Posicao := Pos(Copy(Texto, Contar, 1), Acentos);
if Posicao = 0 then
Result := Result + Copy(Texto, Contar, 1)
else
Result := Result + Copy(TiraAcentos, Posicao, 1);
end;
end;
função abaixo:
function TiraAcentos(Texto: string): string;
var
Contar, Posicao: integer;
Acentos, TiraAcentos: string;
begin
Acentos := 'áäàãâÁÄÀÃÂéëèêÉËÈÊíïìîÍÏÌÎóöòõôÓÖÒÕÔúüùûÚÜÙÛçÇ+'; //Acrecentei um sinal de + e troque por um espaço em branco com observado na mesma função
TiraAcentos := 'aaaaaAAAAAeeeeEEEEiiiiIIIIoooooOOOOOuuuuUUUUcC ';
Result := '';
for Contar := 1 to Length(Texto) do begin
Posicao := Pos(Copy(Texto, Contar, 1), Acentos);
if Posicao = 0 then
Result := Result + Copy(Texto, Contar, 1)
else
Result := Result + Copy(TiraAcentos, Posicao, 1);
end;
end;
GOSTEI 0
Luiz Fábio
02/10/2012
O problema é que ninguém me deixa tirar os acentos.... rsrsrs
Eu acho que deve ser alguma coisa relacionada com o Provider ou o Dataset, digo isso por que quando eu uso o XML Mapper e peço pra testar o XTR ele abre um grid com os dados do XML e com acentos corretos, ou seja, existe alguma forma de fazer ou o XML Mapper não foi feito com Delphi.... kkkk
Eu acho que deve ser alguma coisa relacionada com o Provider ou o Dataset, digo isso por que quando eu uso o XML Mapper e peço pra testar o XTR ele abre um grid com os dados do XML e com acentos corretos, ou seja, existe alguma forma de fazer ou o XML Mapper não foi feito com Delphi.... kkkk
GOSTEI 0