Caracteres especiais ao ler arquivo de texto em servidor remoto

Primeiramente desculpe pela mensagem em branco
acredito que alguem aqui tenha me zuado porq deixei o pc ligado e sai pra atender alguns clientes (logo matarei o responsavel)

o meu problema esta ao ler um arquivo de texto em um servidor


 
                            BASE64Encoder enc = new sun.misc.BASE64Encoder();
                            URL url = null;
                            try {
                                url = new URL("http://meusite/"+texto+".txt");
                            } catch (MalformedURLException ex) {
                                Logger.getLogger(Janela.class.getName()).log(Level.SEVERE, null, ex);
                            }
                            HttpURLConnection connection = null;
                            try {
                                connection = (HttpURLConnection) url.openConnection();
                            } catch (IOException ex) {
                                Logger.getLogger(Janela.class.getName()).log(Level.SEVERE, null, ex);
                            }
                            connection.addRequestProperty("Request-Method", "GET");
                            connection.addRequestProperty("Authorization", "Basic " + enc.encode("user:password".getBytes()));
                            connection.setDoInput(true);
                            connection.setDoOutput(false);
                            try {
                                connection.connect();
                            } catch (IOException ex) {
                                Logger.getLogger(Janela.class.getName()).log(Level.SEVERE, null, ex);
                            }
                            try {
                                if (connection.getResponseCode() == 200) {
                                    BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
                                    StringBuffer newData = new StringBuffer();
                                    String s = "";
                                    while (null != ((s = br.readLine()))) {
                                        newData.append(s);
                                    }
                                    br.close();
                                   
                                     
                                }
                            } catch (IOException ex) {
                                Logger.getLogger(Janela.class.getName()).log(Level.SEVERE, null, ex);
                            }

o arquivo de texto contem strings como [quote]9|ã##|%|gFÃ?k&á|%%p@Ã?YWõHÃ?oSXd%1XÃ?l@pkgm’õ10Ã?&63Y%o1&S"j%XfNQgYç1WWPYXQ’[/quote]

ao enviar e ler no linux tudo funciona perfeitamente
mas no windows consigo enviar mas nao consigo ler, ou melhor, consigo ler mas alguns ccaracteres saem errados

me falaram algo sobre unicode mas nao sei ao certo como comecar a investigar o problema

mais uma vez desculpem pela mensagem em branco, os responsaveis serao devidamente punidos.

Não entendi essa?

tive alguns problemas mas a mensagem esta ok agora se ainda tiver interesse em ver

depois de pesquisar um pouco percebi que o que deveria acontecer é o programa ler o txt que esta no servidor utilizando utf-8
mas parece que isso nao acontece

por exemplo
esse retorno onde ele pega o html gerado pelo php no servidor

ou essa parte de uma mensagem
Conteúdo recebido:

como posso proceder quanto a isso?

[quote=nakrak]depois de pesquisar um pouco percebi que o que deveria acontecer é o programa ler o txt que esta no servidor utilizando utf-8
mas parece que isso nao acontece

por exemplo
esse retorno onde ele pega o html gerado pelo php no servidor

ou essa parte de uma mensagem
Conteúdo recebido:

como posso proceder quanto a isso?
[/quote]

Ok,agora entendi. Não precisa matar ninguém por isso. =D

normalmente isso é ausado pelo charset que escolheu. eu normalmenteuso
iso-8859-1, latin1

Se eu me lembro bem, estas classes de comunicação tem como vc mudar dinamicamente a codificação que tá utilizando. só que faz tempo que não trabalho com isso, não lembro como, então vai ter que pesquisar.
Possivelmente algo parecido com isso:
connection.setUtfType ou algo parecido

esteja certo que seus arquivos e tudo o que repassa-lo até o cliente, tambem está com a mesma codificação. as vezes eu tinha esse problema quando mudava de servidor windows pra linux.

muito obrigado pela resposta

Como de costume sempre que posto um problema insoluvel aqui no guj acabo encontrando a resposta XD

entao

 
                            BASE64Encoder enc = new sun.misc.BASE64Encoder();
                            URL url = null;
                            try {
                                url = new URL("http://meusite/"+texto+".txt");
                            } catch (MalformedURLException ex) {
                                Logger.getLogger(Janela.class.getName()).log(Level.SEVERE, null, ex);
                            }
                            HttpURLConnection connection = null;
                            try {
                                connection = (HttpURLConnection) url.openConnection();
                            } catch (IOException ex) {
                                Logger.getLogger(Janela.class.getName()).log(Level.SEVERE, null, ex);
                            }
                            connection.addRequestProperty("Request-Method", "GET");
                            connection.addRequestProperty("Authorization", "Basic " + enc.encode("user:password".getBytes()));
                            connection.setDoInput(true);
                            connection.setDoOutput(false);
                            try {
                                connection.connect();
                            } catch (IOException ex) {
                                Logger.getLogger(Janela.class.getName()).log(Level.SEVERE, null, ex);
                            }
                            try {
                                if (connection.getResponseCode() == 200) {
                                    BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
                                    StringBuffer newData = new StringBuffer();
                                    String s = "";
                                    while (null != ((s = br.readLine()))) {
                                        newData.append(s);
                                    }
                                    br.close();
                                   
                                     
                                }
                            } catch (IOException ex) {
                                Logger.getLogger(Janela.class.getName()).log(Level.SEVERE, null, ex);
                            }

bastou adicionar “UTF-8” em BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream() , "UTF-8"));
assim ele pega a conexao de entrada ja com a codificacao correta