 |
ActiveDelphi .: O site do programador Delphi! :.
|
| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
faccruz Colaborador

Registrado: Terça-Feira, 20 de Julho de 2010 Mensagens: 1563
|
Enviada: Seg Nov 06, 2017 4:09 pm Assunto: Codificação Acentos - Gerar HTML via Delphi |
|
|
Boa tarde a todos
estou utilizando esse código para gerar um arquivo html
| Código: |
var
Arquivo: TextFile;
Caminho: string;
i: integer;
begin
if FileExists(GetTempFolderWindows('TEMP') + '\' + 'teste.html') then
begin
DeleteFile(GetTempFolderWindows('TEMP') + '\' + 'teste.html');
end;
Caminho := GetTempFolderWindows('TEMP') + '\' + 'teste.html';
AssignFile(Arquivo, Caminho);
Rewrite(Arquivo);
WriteLN(Arquivo, '<DOCTYPE>');
WriteLN(Arquivo, '<html>');
WriteLN(Arquivo, ' <head>');
writeLN(Arquivo, ' meta charset ="'utf-8">); --> o forum não aceita essa tag
WriteLN(Arquivo, ' </head>');
WriteLN(Arquivo, '<body>');
i := 0;
while i < Memo1.Lines.Count do
begin
WriteLN(Arquivo, Memo1.Lines[i]);
WriteLN(Arquivo, '</br>');
inc(i);
end;
WriteLN(Arquivo, '</body>');
WriteLN(Arquivo, '</html>');
CloseFile(Arquivo);
ShellExecute(Handle, 'open', Pchar(Caminho), nil, nil, SW_SHOWMAXIMIZED);
|
Porém ao abrir no browser, os caracteres acentuados estão ficando com uma interrogação, sendo que foi informado meta charset="utf-8" na geração do arquivo html.
Alguém pode me auxiliar? _________________ Facc System - Sistemas para Computador |
|
| Voltar ao Topo |
|
 |
natanbh1 Colaborador

Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Seg Nov 06, 2017 4:42 pm Assunto: |
|
|
Veja um exemplo utilizando StringList e codificando o arquivo para UTF-8.
| Código: | var
HTML: TStringList;
Caminho: string;
i: integer;
begin
HTML := TStringList.Create;
with HTML do
begin
try
Caminho := GetEnvironmentVariable('TEMP') + '\' + 'teste.html';
Add('<html>');
Add('<title>Teste Criação Arquivo HTML</title>');
Add('<font size=4>Teste HTML</font>');
Add('<meta charset = "UTF-8">');
Add('<BR><BR>');
for i := 0 to Memo1.Lines.Count - 1 do
begin
Add(UTF8Encode(Memo1.Lines[i]));
Add('</br>');
end;
Add('</body>');
Add('</html>');
SaveToFile(Caminho, Encoding.UTF8);
ShellExecute(Handle, 'open', Pchar(Caminho), nil, nil, SW_SHOWMAXIMIZED);
finally
Free;
end;
end;
end; |
_________________ ''A persistência é o caminho para o êxito.''
Charlie Chaplin |
|
| Voltar ao Topo |
|
 |
marcieldeg Colaborador


Registrado: Terça-Feira, 5 de Abril de 2011 Mensagens: 1054 Localização: Vitória - ES
|
Enviada: Ter Nov 07, 2017 8:15 am Assunto: |
|
|
Eu usaria o TStringStream, de forma muito similar ao exemplo do colega acima. TStringStream pode receber a codificação no construtor. _________________ "Olha a interface da IDE! Será que ela é? Será que ela é? DELPHI!" |
|
| Voltar ao Topo |
|
 |
faccruz Colaborador

Registrado: Terça-Feira, 20 de Julho de 2010 Mensagens: 1563
|
Enviada: Ter Nov 07, 2017 8:19 am Assunto: |
|
|
Valeu pela ajuda natanbh1.
Só precisei alterar um pouco o código, devido eu estar utilizando o Delphi 7.
| Código: | try
HTML := TStringList.Create;
if FileExists(GetTempFolderWindows('TEMP') + '\' + 'teste.html') then
begin
DeleteFile(GetTempFolderWindows('TEMP') + '\' + 'teste.html');
end;
Caminho := GetTempFolderWindows('TEMP') + '\' + 'teste.html';
HTML.Add('<DOCTYPE>');
HTML.Add('<html>');
HTML.Add(' <head>');
HTML.Add(' <meta>');
HTML.Add(' </head>');
HTML.Add('<body>');
i := 0;
while i < Memo1.Lines.Count do
begin
HTML.Add(AnsiToUtf8(Memo1.Lines[i]));
HTML.Add('</br>');
inc(i);
end;
HTML.Add('</body>');
HTML.Add('</html>');
HTML.SaveToFile(Caminho);
ShellExecute(Handle, 'open', Pchar(Caminho), nil, nil, SW_SHOWMAXIMIZED);
finally
FreeAndNil(HTML);
end; |
_________________ Facc System - Sistemas para Computador |
|
| Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|