1
resposta

Converter ASCII para utf-8

Passei por um problema parecido no trabalho, basicamente o usuário anexava um arquivo utilizando "ç, ã ..." mas o nome vinha em por padrão com o Charset "ISO 8895-1"

https://stackoverflow.com/questions/15044027/utf-8-charset-doesnt-work-with-javax-mail

Mas não consegui converter para o Charset "UTF-8", tive de usar uma biblioteca para fazer isso por mim (substituindo ç -> c, ã -> a). Seria possível fazer a conversão para não perder esses caracteres?

package teste;

import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;

public class TestaCodigos {

    public static void main(String[] args) throws Exception {

        String cedilha = "ç";
        Charset charsetUTF8 = StandardCharsets.UTF_8;
        Charset charsetASCII= StandardCharsets.US_ASCII;

        byte[] byteASCII = cedilha.getBytes(charsetASCII);
        byte[] byteUTF8 = cedilha.getBytes(charsetUTF8);

        System.out.println(byteASCII.length +", " + charsetASCII.displayName());
        System.out.println(byteUTF8.length +", " + charsetUTF8.displayName());

        String stringASCII = new String(byteASCII, charsetASCII);
        String stringUTF8 = new String(byteUTF8, charsetUTF8);

        System.out.println(stringASCII);
        System.out.println(stringUTF8);

        // conversao
        System.out.println("------------- conversao -------------");

        byte[] byteConversao = stringASCII.getBytes(charsetUTF8);
        String stringConversao = new String(byteConversao, charsetUTF8);


        System.out.println(stringConversao);
    }

}

Saída:

1, US-ASCII

2, UTF-8

?

ç

------------- conversao -------------

?

1 resposta

Olá João, tudo bem com você?

Você está usando o Eclipse? Eu estava tendo esse problema toda vez que eu importava um arquivo que vinha no formato padrão do Windows ao invés do UTF-8, então toda vez que eu importo um projeto com um formato diferente do UTF-8, eu preciso ir até as propriedades do projeto (botão direito do mouse no proketo) e mudar o Text File Encoding.

Imgur

Outra coisa que pode ajudar também, embora não resolva o problema com os arquivos externos que importamos, é mudar o encoding padrão do Eclipse para que todos os arquivos que você criar a partir dele venham no formato que queremos. Para fazer isso, é só ir em Window > Preferences > General > Workspace e depois selecionar UTF-8 na seção Text File Encoding.

Imgur

Espero que isso ajude com o problema de encoding. Depois me avisa se funcionou!

Abraços e bons estudos!!