Problem with special characters

0

I have an application that downloads a csv file from an ftp server and within that file it contains product information and the app should insert them into a database, however the special characters are coming "zuados", as in the image below:

SoIwenttolookatthecsvfileinsidetheandroidmonitortoseeifeverythingwasokwiththeproduct:

thisright,soIdebuggedtheapp

IcametotheconclusionthatthisisoccurringatthetimetheappissearchingfortheCSVfileinformationtoenterinthedatabase,butIhavenoideahowtofixthisproblemcananyonehelpme?

Importclass:

publicvoidimportarBanco(){try{Filepath=Environment.getExternalStorageDirectory();FilefileProduto=newFile(path,"/Import/produto.csv");
            FileInputStream produtoStream = new FileInputStream(fileProduto);
            BufferedReader lerArqProduto = new BufferedReader(new InputStreamReader(produtoStream));
            String proLinha = lerArqProduto.readLine();

            while (proLinha != null){
                String[] proDados = proLinha.split(";");
                String codigo = proDados[0];
                String barras = proDados[1];
                String descricao = proDados[2];
                String venda1 = proDados[3];
                String venda2 = proDados[4];
                String venda3 = proDados[5];

                String resultado = proCrud.insereProduto(codigo, barras, descricao, venda1, venda2, venda3);
                proLinha = lerArqProduto.readLine();
            }
            lerArqProduto.close();

            File fileCliente = new File(path, "/Import/cliente.csv");
            FileInputStream clienteStrem = new FileInputStream(fileCliente);
            BufferedReader lerArqCliente = new BufferedReader(new InputStreamReader(clienteStrem));
            String parLinha = lerArqCliente.readLine();

            while (parLinha != null){
                String[] parDados = parLinha.split(";");
                String codigo = parDados[0];
                String nome = parDados[1];
                String cpf = parDados[2];
                String rg = parDados[3];
                String endereco = parDados[4];
                String bairro = parDados[5];
                String municipio = parDados[6];
                String uf = parDados[7];

                String resultado = parCrud.insereCliente(codigo, nome, cpf, rg, endereco, bairro,
                        municipio, uf);
                parLinha = lerArqCliente.readLine();
            }
            lerArqCliente.close();

            File fileLogin = new File(path, "/Import/login.csv");
            FileInputStream loginStream = new FileInputStream(fileLogin);
            BufferedReader lerArqLogin = new BufferedReader(new InputStreamReader(loginStream));
            String logLinha = lerArqLogin.readLine();

            while(logLinha != null){
                String[] logDados = logLinha.split(";");
                String usuario = logDados[0];
                String senha = logDados[1];

                String resultado = lCrud.insereLogin(usuario, senha);
                logLinha = lerArqLogin.readLine();
            }
            lerArqLogin.close();

        }catch (Exception e){
            e.getStackTrace();
        }
    }
    
asked by anonymous 30.03.2017 / 20:22

2 answers

4

When you upload the file to BufferedReader , pass charset as a parameter.

File path = Environment.getExternalStorageDirectory();
File fileProduto = new File(path, "/Import/produto.csv");
FileInputStream produtoStream = new FileInputStream(fileProduto);
BufferedReader lerArqProduto = new BufferedReader(new InputStreamReader(produtoStream, "ISO-8859-1"));
    
30.03.2017 / 20:32
-1

You can try to declare FileOutPutStream like this:

 new FileOutputStream("outfilename"), "UTF-8"));
    
30.03.2017 / 20:51