Ir para conteúdo

Arquivado

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

brcontainer

Acentos e codificação ao ler arquivos

Recommended Posts

Ao tentar enviar um arquivo binario ou com acentos para um socket o servidor perde o formato original do arquivo:

 

Função para ler o arquivo do asset(para do APK - android):

 

 

protected String ArquivoAsset(String f){
try {
InputStream inArq = GerenciarAssets.open(f);
long length = inArq.available();
byte[] fileData = new byte[(int) length];
       DataInputStream dis = new DataInputStream(inArq);
       dis.readFully(fileData);
       return new String(fileData);
} catch (Exception e){
System.err.println(e);
}
return null;
}

 

Usando o socket:

 

 

mySocket = new ServerSocket(8899);
...
headers();//headers comuns http/1.0
mySocket.write(ArquivoAsset("arquivo.txt").getBytes());
mySocket.flush();
...

 

As imagens não abrem corretamente e os acentos viram "?", como resolver isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvido, a solução para trabalhar com isso é não usar string, sempre use byte[], e transmita por

Socket.write()

assim evita que o Java converta os caracteres, preservando os dados binários e acentos.

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.