Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

~vêHagah#

vb6 - Escrever arquivo em UTF-8

Recommended Posts

Boa tarde pessoal.

Estou com um problema aqui.

Estou gerando a ficha FCI, onde é necessário o envio de arquivo em codificação UTF-8, sendo que meu código gera automaticamente em codificação ANSI:

 

 

Case "O" 

    Open FileName For Output Access Write As #FileId

 

Desta forma, o arquivo é gerado em ANSI, como fazer para gerar em UTF-8?

 

Agradeço qualquer tipo de ajuda!

Obrigado.



Obs.: poderia ser tambem (caso exista), algo que altere a codificação após já ter o arquivo criado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Khaos, obrigado pela resposta.

 

Não entendi sua pergunta!

 

Se isso ajudar, segue abaixo conteúdo de meu externos.bas:

 

 

Attribute VB_Name = "ExternosMOD"
Option Explicit


Public Sub eTFIOpenTxt(ByVal FileName, ByVal Modo, FileId)
    ' FileName  - Nome do arquivo a ser aberto
    ' Modo      - Modo de abertura (I)nput,(O)utput ou (A)ppend
    ' FileId    - Identidicação do arquivo (Se for -1 houve erro)
    '
    On Error GoTo ErrStatus
    
    FileId = FreeFile()
    If FileId = 0 Then
        GoTo ErrStatus
    End If
    
    Select Case UCase$(Left$(Modo, 1))
        Case "I"
            Open FileName For Input Access Read As #FileId
        Case "O"
            Open FileName For Output Access Write As #FileId
        Case "A"
            Open FileName For Append Access Write As #FileId
        Case Else
            GoTo ErrStatus
    End Select
    Exit Sub
ErrStatus:
    On Error Resume Next
    FileId = -1
End Sub


Sub eTFICloseTxt(ByVal FileId)
    ' FileId    - Identidicação do arquivo
    '
    Close #FileId
End Sub


Sub eTFIReadTxt(ByVal FileId, LineText)
    ' FileId    - Identidicação do arquivo
    ' LineText  - Linha lida do arquivo (Retorna "ERRO" na linha se não leu)
    '
    On Error GoTo ErrStatus
    Line Input #FileId, LineText
    Exit Sub
ErrStatus:
    On Error Resume Next
    LineText = "ERRO"
End Sub


Sub eTFIEofTxt(ByVal FileId, Status)
    ' FileId    - Identidicação do arquivo
    ' Status    - Se for 1 é fim de arquivo, se for 0 não é.
    '
    If EOF(FileId) Then
        Status = 1
    Else
        Status = 0
    End If
End Sub


Sub eTFIWriteTxt(ByVal FileId, LineText)
    ' FileId    - Identidicação do arquivo
    ' LineText  - Linha a gravar no arquivo
    '
    On Error GoTo ErrStatus
    Print #FileId, LineText
    Exit Sub
ErrStatus:
    On Error Resume Next
    LineText = "ERRO"
End Sub

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Encontrei as seguintes soluções:

 


Dim fsT As Object Set fsT = CreateObject("ADODB.Stream") 
fsT.Type = 2 //Specify stream type - we want To save text/string data. 
fsT.Charset = "utf-8" //Specify charset For the source text data. 
fsT.Open //Open the stream And write binary data To the object 
fsT.WriteText "special characters: äöüß" 
fsT.SaveToFile sFileName, 2 //Save binary data To disk

 


Substitua o Object pelo seu objeto FreeFile.

object.CreateTextFile(filename[, overwrite[, unicode]]) 
object.OpenTextFile(filename[, iomode[, create[, format]]])

Fonte: http://stackoverflow.com/questions/2524703/save-text-file-utf-8-encoded-with-vba

 

Existem mais soluções:

 

https://www.google.com/webhp?sourceid=chrome-instant&ion=1&ie=UTF-8#safe=off&hl=pt-BR&q=FreeFile+Visual+Basic+utf+8&spell=1&sa=X&ei=3QlyUZGSK42u8ATbywE&ved=0CCsQBSgA&bav=on.2,or.r_cp.r_qf.&bvm=bv.45512109,d.eWU&fp=47f9265b4a5115c0&ion=1&biw=1366&bih=643

 

http://stackoverflow.com/questions/15809081/how-to-change-the-encoding-of-an-file-in-vb-6-0

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.