zoukankan      html  css  js  c++  java
  • Android中文URL乱码问题 解决

    问题现象:在Android中通过HttpGet发送http请求时,url中的中文到了服务器就变成了乱码。代码如下:

    HttpClient client = new DefaultHttpClient();
    HttpParams httpParams = client.getParams();
    HttpConnectionParams.setConnectionTimeout(httpParams, 10000);
    HttpConnectionParams.setSoTimeout(httpParams, 180000);
    HttpResponse response = client.execute(new HttpGet( "http://HakonZhao.com/FunnyList/a?name=小小研究院" ));
     
        解决:
        使用HttpPost来发送请求,并且用java.net.URLEncoder对中文字符进行编码,代码如下:
    HttpPost httpPost = new HttpPost(new URI("http://HakonZhao.com/FunnyList/a"));
    List<NameValuePair> urlParam = new ArrayList<NameValuePair>();
    urlParam.add(new BasicNameValuePair("name", URLEncoder.encode("小小研究院 ")));
    httpPost.setEntity( new UrlEncodedFormEntity(urlParam, HTTP.UTF_8));
    client.execute(httpPost);
        在服务器端需要用URLDecoder对中文参数进行解码,代码如下:
    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException 
    {
    request.setCharacterEncoding("UTF-8");
    response.setCharacterEncoding("UTF-8");
    String name = URLDecoder.decode( request.getParameter("name"), "UTF-8");
                    。。。
           }
  • 相关阅读:
    redis 实例
    redis 常用命令
    redis sets类型及操作
    简单说说PHP优化那些事
    C# IEnumerable与IQueryable ,IEnumerable与IList ,LINQ理解Var和IEnumerable
    全文搜索引擎 elasticsearch.net
    .net 异步
    并行开发 8.用VS性能向导解剖你的程序
    并行开发 7.简要分析任务与线程池
    并行开发 6.异步编程模型
  • 原文地址:https://www.cnblogs.com/ggzjj/p/2997418.html
Copyright © 2011-2022 走看看