我正在通过手机向服务器发送一些消息。但是,当我发送它时,像ó,í等特殊字符没有发送好,我看到“?”而不是角色。我在这里留言:
chatmensaje=text.getText().toString();
chatmensaje=chatmensaje.trim();
vaciarChat();
params=new ArrayList<NameValuePair>();
params.clear();
params.add(new BasicNameValuePair("mensaje", "Personal: "+chatmensaje));
params.add(new BasicNameValuePair("subnotid", String.valueOf(General.subnotid)));
try {
CustomHttpClient.executeHttpPost(urlchat, params);
runOnUiThread(new Runnable(){
public void run(){
if(chatmensaje != ""){
General.mensajes.add(chatmensaje);
//text.setText("");
mHandler.post(new Runnable() {
public void run() {
madapter = new MessageAdapter(
getApplicationContext(), 0, General.mensajes);
setListAdapter(madapter);
madapter.notifyDataSetChanged();
}
});
}
}
});
} catch (IOException e){
e.printStackTrace();
General.chatnotsent.add(chatmensaje);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
General.chatnotsent.add(chatmensaje);
}
}
“text”是一个EditText。我怎样才能将String格式化为特殊字符?感谢。
答案 0 :(得分:1)
- 您需要使用UrlEncodedFormEntity
。
<强>例如强>
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
nameValuePairs.add(new BasicNameValuePair("mensaje", "Personal: "+chatmensaje));
nameValuePairs.add(new BasicNameValuePair("subnotid", General.subnotid+""));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
答案 1 :(得分:0)
对于特殊字符,我们使用Unicode定义,用于'&amp;'例如:\ u0026如果我是对的。这是一个很好的参考页面:http://jrgraphix.net/research/unicode_blocks.php?block=0 试试这个