EXE para converter TXT em UTF-8

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

EXE para converter TXT em UTF-8

Mensagem por janio »

Pessoal,

Um colega de outro grupo (hwgui) disponibilizou um EXE para aqueles que ainda usam CLIPPER possar converter um TXT no padrão UTF-8.

Deve resolver os problemas de muitos clippeiros!

Vejam a mensagem que ele postou:

Código: Selecionar todos

Kleber, em anexo vai um executável compactado que fiz para converter txt para utf8 
  
descompacte- o na pasta em que se encontra o seu aplicativo 
  
no seu aplicativo acrescente: 
  
    run ( str2utf8 <nomedoseutxt. txt> ) 
  
o aplicativo vai gerar um novo arquivo com o nome de <nomedeseutxt8. txt> 
ou seja ele acrescenta um 8 antes de ".txt" 
  
pegue o arquivo gerado e não vaida mais erro de utf8 
  
Sem mais, cordialmente, 
Marcelo Brigatti 
IES - Informática e Sistemas 
Peguem o Executável e façam seus testes:
http://www.4shared.com/file/35022401/2d ... 2utf8.html

Jânio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Garoto de Programa
Usuário Nível 1
Usuário Nível 1
Mensagens: 37
Registrado em: 23 Nov 2005 14:34
Localização: Belo Horizonte/MG
Contato:

Re: EXE para converter TXT em UTF-8

Mensagem por Garoto de Programa »

Infelismente o arquivo não esta mais disponível, alguem que tenha pego ele ou saiba onde encontrar poderia fazer a gentileza de posta-lo para o uso da comunidade.

Obrigado.
Christiano Ribeiro Soares
Desenvolvedor
http://www.chrissoares.com.br
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Re: EXE para converter TXT em UTF-8

Mensagem por alaminojunior »

Se não me engano, a única diferença entre tais arquivos, é que no UTF8 existem os seguintes caracteres:

Código: Selecionar todos

CHR(239)+CHR(187)+CHR(191)
no início do texto.

Se realmente for isso, basta escreve-los com as funções de baixo nível sem necessidade de programa externo.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Garoto de Programa
Usuário Nível 1
Usuário Nível 1
Mensagens: 37
Registrado em: 23 Nov 2005 14:34
Localização: Belo Horizonte/MG
Contato:

Re: EXE para converter TXT em UTF-8

Mensagem por Garoto de Programa »

Obrigado pela dica alaminojunior, vou testar e posto o resultado.

Eu localizei o arquivo que o Janio postou e estou atualizando o seu link:

Converter TXT para UTF8

Obrigado a todos.
Christiano Ribeiro Soares
Desenvolvedor
http://www.chrissoares.com.br
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: EXE para converter TXT em UTF-8

Mensagem por sygecom »

Deixei na sessão xHarbour no topico do link abaixo um anexo que talvez lhe de uma LUZ no que você prescisa.
viewtopic.php?f=4&t=9511
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Garoto de Programa
Usuário Nível 1
Usuário Nível 1
Mensagens: 37
Registrado em: 23 Nov 2005 14:34
Localização: Belo Horizonte/MG
Contato:

Re: EXE para converter TXT em UTF-8

Mensagem por Garoto de Programa »

alaminojunior escreveu:Se não me engano, a única diferença entre tais arquivos, é que no UTF8 existem os seguintes caracteres:

Código: Selecionar todos

CHR(239)+CHR(187)+CHR(191)
no início do texto.

Se realmente for isso, basta escreve-los com as funções de baixo nível sem necessidade de programa externo.
alaminojunior, eu testei sua dica, coloquei no inicio do arquivo gerado com um fWrite(fArq, CHR(239)+CHR(187)+CHR(191)) mas não funcionou. :(
sygecom escreveu:Deixei na sessão xHarbour no topico do link abaixo um anexo que talvez lhe de uma LUZ no que você prescisa.
viewtopic.php?f=4&t=9511
Leonardo, eu vou testar e posto aqui se resovel, mais uma vez muito obrigado pela força.

A todos meu muito obrigado, tudo de bom!
Christiano Ribeiro Soares
Desenvolvedor
http://www.chrissoares.com.br
Iwasa
Usuário Nível 1
Usuário Nível 1
Mensagens: 45
Registrado em: 16 Ago 2007 08:27
Localização: PRES. PRUDENTE SP
Contato:

Re: EXE para converter TXT em UTF-8

Mensagem por Iwasa »

Pelo que eu ví, além de ter os codigos chr(239)+chr(187)+chr(191) que são indicadores de formato utf8, os acentos também têm que ser convertidos para o padrão utf8, só acrescentar os códigos de identificação de formato não vai ajudar.
Se não me engano eu vi aqui na comunidade os códigos para conversão de acentos do Windows para DOS e vice-versa...
Terá que ser utilizado esse conversor de acentos e acrescentar os códigos de identificação de formato uft8 na linha 0 apartir da coluna 0, aí funciona belezinha, mas utilizando esse conversor de acentos, provavelmente não terá necessidade do identificador de formato utf8.
Eu fiz um teste aqui por este executável que está neste tópico e fiz um teste com arquivo em branco e identifiquei os códigos de identificação em HEXA: EF BB BF.
E fiz um teste pelo clipper utilizando estes codigos acima em DEC que são correspondentes a 239 187 191 pelo comando set printer to e @00,00 say chr(239)+chr(187)+chr(191), mas ao final desses códigos é acrescentado o HEXA 0D q é o ASC 13 ou "CR", pois então para evitar este código CR terá que ser usado função de baixo nível do clipper.

Estou anexando o código para converter acentos, mas se for para utilizar em arquivos terá que ser adaptado.
Espero ter ajudado de alguma forma :)
Anexos
acentos windos.rar
(879 Bytes) Baixado 329 vezes
CLIPPER 5.3b/BLINKER 7.0/RDD CDX => Migrando para HARBOUR/RDD CDX

"Podemos construir um mundo melhor, compartilhando informações. Compartilhar conhecimento é edificar um mundo melhor para todos!".

http://iwasa.4shared.com/
Garoto de Programa
Usuário Nível 1
Usuário Nível 1
Mensagens: 37
Registrado em: 23 Nov 2005 14:34
Localização: Belo Horizonte/MG
Contato:

Re: EXE para converter TXT em UTF-8

Mensagem por Garoto de Programa »

Iwasa escreveu:Pelo que eu ví, além de ter os codigos chr(239)+chr(187)+chr(191) que são indicadores de formato utf8, os acentos também têm que ser convertidos para o padrão utf8, só acrescentar os códigos de identificação de formato não vai ajudar.
Se não me engano eu vi aqui na comunidade os códigos para conversão de acentos do Windows para DOS e vice-versa...
Terá que ser utilizado esse conversor de acentos e acrescentar os códigos de identificação de formato uft8 na linha 0 apartir da coluna 0, aí funciona belezinha, mas utilizando esse conversor de acentos, provavelmente não terá necessidade do identificador de formato utf8.
Eu fiz um teste aqui por este executável que está neste tópico e fiz um teste com arquivo em branco e identifiquei os códigos de identificação em HEXA: EF BB BF.
E fiz um teste pelo clipper utilizando estes codigos acima em DEC que são correspondentes a 239 187 191 pelo comando set printer to e @00,00 say chr(239)+chr(187)+chr(191), mas ao final desses códigos é acrescentado o HEXA 0D q é o ASC 13 ou "CR", pois então para evitar este código CR terá que ser usado função de baixo nível do clipper.

Estou anexando o código para converter acentos, mas se for para utilizar em arquivos terá que ser adaptado.
Espero ter ajudado de alguma forma :)
Iwasa, muito obrigado pela ideia!

Na verdade, quando vou criar o meu arquivo da NFe, eu utilizava uma função minha que fazia a conversão de OEM para ANSI, assim os caracteres especiais ficavam corretos ao abrir o arquivo em uma aplicação Windows. Depois que descobri a função do xHarbour HB_OEMTOANSI eu troquei a minha por ela.

Depois de criar o arquivo da NFe, como descrevi acima, eu volto a abri-lo e utilizando o fSeek(fArq, 0, 0) vol para o seu início e então utilizo o fWrite(fArq, CHR(239)+CHR(187)+CHR(191)), fecho o aquivo.

Mas mesmo assim, não fica em padrão UTF8. Eu verifico isso abrindo o arquivo no Internet Explorer, que retorna erro, quando abro este arquivo com o PSPad e faço a conversão para UFT8(Menu Format/UTF-8) e salvo novamente, ai consigo abrir o arquivo com o Internet Explorer.

Obrigado pela ajuda.

Ps: Ainda não testei a função do Leonardo, estou indo testar e posto os resultados que obtiver.
Christiano Ribeiro Soares
Desenvolvedor
http://www.chrissoares.com.br
Responder