如何将特殊字符发送到Web服务?

时间:2013-07-06 15:18:05

标签: c# java android web-services

我正在开发一个Android应用程序,可以在数据库中搜索您当前位置附近的广告客户名称。为此,它访问公司服务器上的一些Web服务。基本上,应用程序将参数发送到Web服务,Web服务返回查询结果。但是,某些广告客户名称包含特殊字符,例如“/”或空格。我尝试用%20 替换空格并且工作正常,但在发送“/”字符时,我收到错误。我尝试用%2F 替换它,就像我对空间所做的那样但仍然无法正常工作。我应该怎么做的想法?

修改

我按建议使用了

  

字符串查询= URLEncoder.encode(“some value”,“utf-8”);

但是现在服务器返回HTTP 404.11错误。我想我接下来要解决的是服务器代码?

3 个答案:

答案 0 :(得分:2)

您不必手动执行URL编码,您可以使用Android库,试试这个:

String query = URLEncoder.encode("something of yours / words", "utf-8");
String url = "https://stackoverflow.com/search?q=" + query;

参考:

URL encoding in Android

答案 1 :(得分:0)

使用URLEncoder.encode(urlstringwithspecialchar,“utf-8”);

答案 2 :(得分:0)

你需要把代码放在try catch块中: -

try {
String query = URLEncoder.encode("something of yours / words", "utf-8");
    String url = "http://stackoverflow.com/search?q=" + query;
    } catch (UnsupportedEncodingException e) {
   e.printStackTrace();
}