Página 1 de 1
EXE para converter TXT em UTF-8
Enviado: 16 Jan 2008 10:18
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
Re: EXE para converter TXT em UTF-8
Enviado: 25 Jul 2009 16:13
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.
Re: EXE para converter TXT em UTF-8
Enviado: 25 Jul 2009 16:25
por alaminojunior
Se não me engano, a única diferença entre tais arquivos, é que no UTF8 existem os seguintes caracteres:
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.
Re: EXE para converter TXT em UTF-8
Enviado: 25 Jul 2009 16:58
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.
Re: EXE para converter TXT em UTF-8
Enviado: 25 Jul 2009 17:36
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
Re: EXE para converter TXT em UTF-8
Enviado: 25 Jul 2009 18:00
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:
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!
Re: EXE para converter TXT em UTF-8
Enviado: 26 Jul 2009 12:33
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

Re: EXE para converter TXT em UTF-8
Enviado: 27 Jul 2009 09:15
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.