COMO GERAR ARQUIVO TEXTO FORMATO UTF-8

ADELMOMELO 17/02/2013 10:46:27
#419236
Olá,

Colegas estou necessitando gerar uma arquivo com layout para um clientes com os dados respectivos dados solicitados, isto já consegui fazer, entretanto, o mesmo que o arquivo no formato UTF-8, o que eu até consegui fazer usando os comandos Chr(239) & Chr(187) & Chr(191) no inicio de cada linha gerada do arquivo gerado, porém o site que faz a importação(upload) de tais dados, não importa os mesmo criticando que a linha do cabeçalho, bem como as demais linhas existem inconsistências, visto que, estes caracteres não ficam visíveis mais ficam atrapalhando na consistência dos dados. Em vista disto, retirei estes caracteres do início de cada linha gerando um arquivo txt comum, e ,através do notepad++, salvo o mesmo com o tipo de arquivo UTF-8, escolhendo a formatação(codificação UTF-8 sem bom) e ai consegui finalmente enviar os dados sem ser criticado pelo site.
Ufa!!! Daí gostaria de solicitar, se alguém sabe como criar tal arquivo com o formato UTF-8 sem ter que mexer nos registros gerados para tal? Gerei o arquivo e linha de comando conforme mostra abaixo:

[ô]define variáveis
Dim fs As Scripting.FileSystemObject
Dim texto As Scripting.TextStream
Dim texto2 As Scripting.TextStream
Dim texto3 As Scripting.TextStream
Dim F As Long, Linha As String
Dim TIPOATOCEP, NATUREZAESCRITURA, DATAATO, LIVRO, LIVROCOMPLEMENTO, FOLHA, FOLHACOMPLEMENTO, Valor, DESCONHECIDO, REFERENTELIVRO, REFERENTELIVROCOMPLEMENTO, REFERENTEFOLHA, REFERENTEFOLHACOMPLEMENTO, REFERENTEUFORIGEM, REFERENTECIDADEORIGEM, REFERENTECARTORIO, PARTENOME, PARTEIDENTIDADE, PARTEORGAOEMISSOR, PARTETIPODOCUMENTO, PARTENUMERODOCUMENTO, PARTEQUALIDADE As String
Dim contador As Long
Dim M_CEP, M_CESDI, M_RCTO As Integer
Set fs = New Scripting.FileSystemObject
If Chk_CEP.Value = 1 Then
Set texto = fs.OpenTextFile(txt_CEP.Text, ForWriting, True)
ElseIf Chk_CESDI.Value = 1 Then
Set texto = fs.OpenTextFile(txt_CESDI.Text, ForWriting, True)
ElseIf Chk_RCTO.Value = 1 Then
Set texto = fs.OpenTextFile(Txt_RCTO.Text, ForWriting, True)
End If
[ô]>>>>>>> INICIA GRAVAÇÃO REGISTRO TIPO 1

gSQL = [Ô]SELECT * FROM TbClienteEscritura where (DATA Between #[Ô] & Format(DTP_DT_INICIAL, [Ô]dd/mm/yyyy[Ô]) & [Ô]# And #[Ô] & Format(DTP_DT_FINAL, [Ô]dd/mm/yyyy[Ô]) & [Ô]#)[Ô]

Set gRS = gDB.OpenRecordset(gSQL)

M_Lin = 1
texto.Write Chr(239) & Chr(187) & Chr(191) & [Ô][Ô][Ô]TIPOATOCEP[Ô][Ô];[Ô][Ô]NATUREZAESCRITURA[Ô][Ô];[Ô][Ô]DATAATO[Ô][Ô];[Ô][Ô]LIVRO[Ô][Ô];[Ô][Ô]LIVROCOMPLEMENTO[Ô][Ô];[Ô][Ô]FOLHA[Ô][Ô];[Ô][Ô]FOLHACOMPLEMENTO[Ô][Ô];[Ô][Ô]VALOR[Ô][Ô];[Ô][Ô]DESCONHECIDO[Ô][Ô];[Ô][Ô]REFERENTELIVRO[Ô][Ô];[Ô][Ô]REFERENTELIVROCOMPLEMENTO[Ô][Ô];[Ô][Ô]REFERENTEFOLHA[Ô][Ô];[Ô][Ô]REFERENTEFOLHACOMPLEMENTO[Ô][Ô];[Ô][Ô]REFERENTEUFORIGEM[Ô][Ô];[Ô][Ô]REFERENTECIDADEORIGEM[Ô][Ô];[Ô][Ô]REFERENTECARTORIO[Ô][Ô];[Ô][Ô]PARTENOME[Ô][Ô];[Ô][Ô]PARTEIDENTIDADE[Ô][Ô];[Ô][Ô]PARTEORGAOEMISSOR[Ô][Ô];[Ô][Ô]PARTETIPODOCUMENTO[Ô][Ô];[Ô][Ô]PARTENUMERODOCUMENTO[Ô][Ô];[Ô][Ô]PARTEQUALIDADE[Ô][Ô][Ô] & vbCrLf

Grande abraço
OCELOT 17/02/2013 17:47:48
#419238
Resposta escolhida
Acredito que com o FileSystemObject não tenha como salvar em UTF8

Da uma olhada nessa página http://stackoverflow.com/questions/10450156/write-text-file-in-appending-utf-8-encoded-in-vb6

Na primeira mensagem o cara mostra como fazer usando o ADODB.Stream, e mais abaixo um outro cara mostrou como fazer usando uma API para converter o texto em bytes antes de gravar.
Tópico encerrado , respostas não são mais permitidas