(VB6) Codificação de arquivo texto!

3 respostas
N

E aí, galerinha do GUJ!
Tudo bem?

Quero enviar um arquivo texto meu, criado com a codificação padrão do Windows, para um amigo que usa MacOS, com a codificação diferente da minha.
Logo, qualquer caractere especial aparece diferente.
Por exemplo:

Como deveria ser:
"produção do suco de açaí"
Como sai no arquivo:
“produÁ?o do suco de aÁaÌ”

Eu abro um arquivo texto da seguinte maneira:

Alguma ideia de como alterar a codificação dele?
Valeu, gente, fiquem com Deus!

3 Respostas

E

A resposta é simples: crie um programa em java que leia a saída do seu programa VB e acerte a codificação. É algo parecido com:

import java.io.*;

class Conversor {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader (new InputStreamReader (new FileInputStream ("entrada"), "ISO-8859-1"));
        BufferedWriter bw = new BufferedWriter (new OutputStreamWriter (new FileOutputStream ("saida"), "UTF-8"));
        for (String linha = br.readLine(); linha != null; linha = br.readLine())
        {
            bw.write (linha); bw.newLine();
        }
        bw.close();
        br.close();
    }
}

Onde está escrito “ISO-8859-1” use provavelmente “Windows-1252” e onde está “UTF-8” aí você precisa ver com seu amigo.

N

entanglement:
A resposta é simples: crie um programa em java que leia a saída do seu programa VB e acerte a codificação. É algo parecido com:

import java.io.*;

class Conversor {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader (new InputStreamReader (new FileInputStream ("entrada"), "ISO-8859-1"));
        BufferedWriter bw = new BufferedWriter (new OutputStreamWriter (new FileOutputStream ("saida"), "UTF-8"));
        for (String linha = br.readLine(); linha != null; linha = br.readLine())
        {
            bw.write (linha); bw.newLine();
        }
        bw.close();
        br.close();
    }
}

Onde está escrito “ISO-8859-1” use provavelmente “Windows-1252” e onde está “UTF-8” aí você precisa ver com seu amigo.

Sim, a resposta é simples. Mas eu gostaria de saber se no VB6 há algum meio de fazer isso, sem precisar criar um “conversor” particular, pois isso eu tenho. Mas obrigado pela resposta!

E

O VB6 foi criado antes do Unicode se tornar popular; o suporte dele a Unicode é quase zero. Para piorar a situação, a documentação do VB6 existente não está no site da Microsoft (msdn.microsoft.com) mas naquele CD do MSDN Library que vinha com o Visual Studio 6. Portanto, se você for procurar coisas na Internet, pode achar é muita coisa errada mesmo (não-oficial).

Isto posto, se você for corajoso suficiente para criar um programa em C++ que seja uma DLL “registrada” e faça exatamente a mesa coisa que esse programa Java que lhe mostrei, esteja à vontade. Você pode fazer qualquer coisa em VB6 se tiver a muleta adequada, que nesse caso é uma DLL em C++. Já usei muitas vezes essa muleta para programas em VB6, mas não quero mais brincar com isso.

Criado 20 de outubro de 2011
Ultima resposta 20 de out. de 2011
Respostas 3
Participantes 2