Erro de codificação ao salvar dados
Bom dia, estou com uma informação sendo gravada no banco de dados que é um campo texto.
No entanto, quando vou acessar essa informação ela aparece toda desconfigurada.
Parece estar gravando as configurações de digitação e tudo mais como: dados da fonte, estilo, charset e etc...
Segue como é exibido, o banco de dados que estou utilizando é o SQL Server:
{\rtf1\ansi\deff0\uc1\ansicpg1252\deftab720{\fonttbl{\f0\fnil\fcharset1 Arial;}{\f1\fnil\fcharset1 Trebuchet MS;}{\f2\fnil\fcharset2 Wingdings;}{\f3\fnil\fcharset2 Symbol;}}{\colortbl\red0\green0\blue0;\red255\green0\blue0;\red0\green128\blue0;\red0\green0\blue255;\red255\green255\blue0;\red255\green0\blue255;\red128\green0\blue128;\red128\green0\blue0;\red0\green255\blue0;\red0\green255\blue255;\red0\green128\blue128;\red0\green0\blue128;\red255\green255\blue255;\red192\green192\blue192;\red128\green128\blue128;\red0\green0\blue0;\red0\green0\blue0;}\wpprheadfoot1\paperw12240\paperh15840\margl1880\margr1880\margt1440\margb1440\headery720\footery720\ftnbj\sftnbj\sftnrstcont\nocolbal\sftnnar\saftnnar\fet0\endnhere\sectdefaultcl{\*\generator WPTools_7.270-PRM;}{\wpparid0\plain\f1\fs16\cf16 Executar trabalhos de restaura'E7'E3o ou constru'E7'E3o de tubula'E7'F5es e chaparias na 'E1rea industrial, efetuar montagem de pe'E7as na oficina ou no local de instala'E7'E3o;\par
\wpparid0\plain\f1\fs16\cf16 Executar tra'E7agem de pe'E7as em tubula'E7'F5es e chaparia, com base no desenho ou projeto 'E1 ser criado; \par
\wpparid0\plain\f1\fs16\cf16 Orientar o soldador em rela'E7'E3o ao local da solda e fazer andaimes para facilitar a execu'E7'E3o de tarefas, entre outras atividades correlatas 'E0 fun'E7'E3o, de acordo com solicita'E7'E3o do superior imediato;\par
\wpparid0\plain\f1\fs16\cf16 Executar trabalhos correlatos aos descritos quando solicitado ou por exig'EAncia do pr'F3prio cargo;\par
\wpparid0\plain\f1\fs16\cf16 Cumprir o padr'E3o de qualidade e produtividade esperada para a realiza'E7'E3o dos trabalhos;\tab\par
\wpparid0\plain\f1\fs16\cf16 Executar suas tarefas de acordo com as pol'EDticas de Qualidade, Meio Ambiente, Sa'FAde, Seguran'E7a do Trabalho e Seguran'E7a de Alimento.\par
}}
já utilizei os seguintes exemplos:
procedure GetTextBlob(Sender: TField; var Text: string; DisplayText: Boolean);
begin
Text := Sender.AsString;
end;
//// utilizando a função
QDescricoes.Open;
QDescricoes.FieldByName('CAU_D1bDescricaoCargoAA').OnGetText := GetTextBlob;
e mesmo assim não da certo.
No entanto, quando vou acessar essa informação ela aparece toda desconfigurada.
Parece estar gravando as configurações de digitação e tudo mais como: dados da fonte, estilo, charset e etc...
Segue como é exibido, o banco de dados que estou utilizando é o SQL Server:
{\rtf1\ansi\deff0\uc1\ansicpg1252\deftab720{\fonttbl{\f0\fnil\fcharset1 Arial;}{\f1\fnil\fcharset1 Trebuchet MS;}{\f2\fnil\fcharset2 Wingdings;}{\f3\fnil\fcharset2 Symbol;}}{\colortbl\red0\green0\blue0;\red255\green0\blue0;\red0\green128\blue0;\red0\green0\blue255;\red255\green255\blue0;\red255\green0\blue255;\red128\green0\blue128;\red128\green0\blue0;\red0\green255\blue0;\red0\green255\blue255;\red0\green128\blue128;\red0\green0\blue128;\red255\green255\blue255;\red192\green192\blue192;\red128\green128\blue128;\red0\green0\blue0;\red0\green0\blue0;}\wpprheadfoot1\paperw12240\paperh15840\margl1880\margr1880\margt1440\margb1440\headery720\footery720\ftnbj\sftnbj\sftnrstcont\nocolbal\sftnnar\saftnnar\fet0\endnhere\sectdefaultcl{\*\generator WPTools_7.270-PRM;}{\wpparid0\plain\f1\fs16\cf16 Executar trabalhos de restaura'E7'E3o ou constru'E7'E3o de tubula'E7'F5es e chaparias na 'E1rea industrial, efetuar montagem de pe'E7as na oficina ou no local de instala'E7'E3o;\par
\wpparid0\plain\f1\fs16\cf16 Executar tra'E7agem de pe'E7as em tubula'E7'F5es e chaparia, com base no desenho ou projeto 'E1 ser criado; \par
\wpparid0\plain\f1\fs16\cf16 Orientar o soldador em rela'E7'E3o ao local da solda e fazer andaimes para facilitar a execu'E7'E3o de tarefas, entre outras atividades correlatas 'E0 fun'E7'E3o, de acordo com solicita'E7'E3o do superior imediato;\par
\wpparid0\plain\f1\fs16\cf16 Executar trabalhos correlatos aos descritos quando solicitado ou por exig'EAncia do pr'F3prio cargo;\par
\wpparid0\plain\f1\fs16\cf16 Cumprir o padr'E3o de qualidade e produtividade esperada para a realiza'E7'E3o dos trabalhos;\tab\par
\wpparid0\plain\f1\fs16\cf16 Executar suas tarefas de acordo com as pol'EDticas de Qualidade, Meio Ambiente, Sa'FAde, Seguran'E7a do Trabalho e Seguran'E7a de Alimento.\par
}}
já utilizei os seguintes exemplos:
procedure GetTextBlob(Sender: TField; var Text: string; DisplayText: Boolean);
begin
Text := Sender.AsString;
end;
//// utilizando a função
QDescricoes.Open;
QDescricoes.FieldByName('CAU_D1bDescricaoCargoAA').OnGetText := GetTextBlob;
e mesmo assim não da certo.
Ueder Caetano
Curtidas 0
Respostas
Emerson Nascimento
25/06/2021
o conteúdo é um arquivo rtf.
pra saber a formar correta de ler, é importante saver como o conteúdo foi gravado.
pra saber a formar correta de ler, é importante saver como o conteúdo foi gravado.
GOSTEI 0
Ueder Caetano
25/06/2021
o conteúdo é um arquivo rtf.
pra saber a formar correta de ler, é importante saver como o conteúdo foi gravado.
pra saber a formar correta de ler, é importante saver como o conteúdo foi gravado.
Bom dia Emerson,
Teria um exemplo que traga essas informações do banco ?
GOSTEI 0
Ueder Caetano
25/06/2021
o conteúdo é um arquivo rtf.
pra saber a formar correta de ler, é importante saver como o conteúdo foi gravado.
pra saber a formar correta de ler, é importante saver como o conteúdo foi gravado.
Bom dia Emerson,
Teria um exemplo que traga essas informações do banco ?
Eu fiz o código abaixo e mesmo assim continua a retonar com o mesmo texto:
MemStr := TMemoryStream.Create;
try
MemStr.Write(QDescricoes.FieldByName('CAU_D1bDescricaoCargoAA').AsString[1],
length(QDescricoes.FieldByName('CAU_D1bDescricaoCargoAA').AsString));
MemStr.Position := 0;
RichEdit1.Lines.LoadFromStream(MemStr);
finally
FreeAndNil(MemStr)
end;
GOSTEI 0
Ueder Caetano
25/06/2021
Bom dia, resolvi dessa forma só notei que estavam sendo gerados caracteres ASCII no inicio.
Bastou fazer um replace que deu certo.
Obrigado a todos.
Bastou fazer um replace que deu certo.
Obrigado a todos.
procedure GetTextBlob(Sender: TField; var Text: string; DisplayText: Boolean);
begin
Text := Sender.AsString;
end;
//// utilizando a função
QDescricoes.Open;
QDescricoes.FieldByName('CAU_D1bDescricaoCargoAA').OnGetText := GetTextBlob;
begin
Text := Sender.AsString;
end;
//// utilizando a função
QDescricoes.Open;
QDescricoes.FieldByName('CAU_D1bDescricaoCargoAA').OnGetText := GetTextBlob;
GOSTEI 0