Problemas com caracteres especiais

40 views
Skip to first unread message

Gabriel Tavares

unread,
Jun 2, 2011, 6:31:02 AM6/2/11
to java.ce
Olá amigos, estou enviando e recebendo dados, via post, para/de uma
central feita usando linguagem php. Porém tenho q enviar e receber
Strings usando caracteres especiais, então quando faço isso a string é
chega de forma inválida. Por exemplo: "avanço", eu recebo somente
"avan".

segue o código:

//
*********************************************************************************************
public String doPost(String url, String params, String
contentType){
try {
URL u = new URL(url);

HttpURLConnection connection = (HttpURLConnection)
u.openConnection();
connection.setRequestMethod(Constantes.RESQUEST_METHOD_POST);
connection.setRequestProperty("User-Agent", Constantes.HTTP_AGENT);
connection.setRequestProperty("Cache-Control", "no-cache");
connection.setRequestProperty("Connection", "close");
connection.setRequestProperty("Content-Type", contentType);
connection.setDoInput(true);
connection.setDoOutput(true);
connection.connect();

OutputStream out = connection.getOutputStream();
byte[] paramsBytes = params.getBytes(Constantes.CODIFICACAO_UTF8);
out.write(paramsBytes);
out.flush();
out.close();

InputStream in = connection.getInputStream();
String resp = readString(in);

connection.disconnect();

return resp;

} catch (MalformedURLException e) {
Log.e(Constantes.CATEGORIA, e.getMessage(), e);
} catch (ProtocolException e) {
Log.e(Constantes.CATEGORIA, e.getMessage(), e);
} catch (UnsupportedEncodingException e) {
Log.e(Constantes.CATEGORIA, e.getMessage(), e);
} catch (IOException e) {
Log.e(Constantes.CATEGORIA, e.getMessage(), e);
}

return "";
}

private byte[] readBytes(InputStream in) throws IOException {
ByteArrayOutputStream bos = new ByteArrayOutputStream();

try {
byte[] buffer = new byte[1024];
int len;

while((len = in.read(buffer)) > 0){
bos.write(buffer, 0, len);
}

byte[] bytes = bos.toByteArray();
return bytes;

} finally{
bos.close();
in.close();
}
}

private String readString(InputStream in) throws IOException {
byte[] bytes = readBytes(in);
String texto = new String(bytes);

Log.i(Constantes.CATEGORIA, "Http.readString: " + texto);

return texto;
}
//
*********************************************************************************************

Existe alguma forma de contornar esse problema??
=]

Alexei Aguiar

unread,
Jun 2, 2011, 7:08:58 AM6/2/11
to jav...@googlegroups.com
connection.setRequestProperty("charset", "utf-8");


2011/6/2 Gabriel Tavares <tubaraodem...@gmail.com>

--
Você está recebendo esta mensagem porque se inscreveu no grupo "java.ce" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para jav...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para javace+un...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/javace?hl=pt-BR.


Gabriel Tavares

unread,
Jun 2, 2011, 7:35:04 AM6/2/11
to jav...@googlegroups.com
Esqueci um detalhe importante, a comunicação é feita do Android
(usando a ling Java com a central em Php. =]

--
Att.,
----------------------------------------------------------------
Gabriel Tavares
Graduando em Engenharia de Computação - IFCE
Trainee - Fotosensores Tecnologia Eletrônica Ltda.

Contatos:

Skype: gabriel.de.melo.freitas
MSN: gabrieldem...@hotmail.com
Email Pessoal (gtalk): tubaraodem...@gmail.com
Email Profissional: gab...@fotosensores.com

Leonardo Ruoso

unread,
Jun 2, 2011, 7:40:56 AM6/2/11
to jav...@googlegroups.com
A orientação do Alexei permanece válida supondo que o aplicativo servidor (em PHP) esteja também configurado para utf-8 (se isso for óbvio me perdoe)!
Leonardo Ruoso - Jornalista/Desenvolvedor
Assessoria de Imprensa. Consultoria de Marketing. Desenvolvimento e Integração de Software. 
Comunicação Social/Jornalismo - UFC/2006. Telecomunicações - ETFCE/1998. 
Foos, Perl, Debian Gnu/Linux, Agile, UML, DBA e OOP. Coaching/NLP. Inglês e Francês. 

Gabriel Tavares

unread,
Jun 2, 2011, 7:55:37 AM6/2/11
to jav...@googlegroups.com
Sim, o aplicativo servidor está configurado para utf-8! Mas não deu
certo a configuração acima :/

Leonardo Ruoso

unread,
Jun 2, 2011, 8:42:09 AM6/2/11
to jav...@googlegroups.com
Por curiosidade, qual o SO do servidor?

Gabriel Tavares

unread,
Jun 2, 2011, 8:50:44 AM6/2/11
to jav...@googlegroups.com
É um CentOS. Por que? Existe alguma restrição quanto a isso?

Leonardo Ruoso

unread,
Jun 2, 2011, 8:52:25 AM6/2/11
to jav...@googlegroups.com
Em 2 de junho de 2011 12:50, Gabriel Tavares <tubaraodem...@gmail.com> escreveu:
É um CentOS. Por que? Existe alguma restrição quanto a isso?

Não deveria haver, sua requisição está sendo feita por GET ou POST?

Leonardo Ruoso

unread,
Jun 2, 2011, 9:01:49 AM6/2/11
to jav...@googlegroups.com
Em 2 de junho de 2011 12:52, Leonardo Ruoso <leonard...@gmail.com> escreveu:
Em 2 de junho de 2011 12:50, Gabriel Tavares <tubaraodem...@gmail.com> escreveu:

É um CentOS. Por que? Existe alguma restrição quanto a isso?

Não deveria haver, sua requisição está sendo feita por GET ou POST?
Okay, POST, vacilo meu!
Reply all
Reply to author
Forward
0 new messages