zoukankan      html  css  js  c++  java
  • android 发送GET请求 服务端接收乱码的问题

    在android的编程中常会使用get/post请求,在用get请求的时候数据是直接放在url当中的

    例如:

    http://apicloud.mob.com/v1/weather/query?key=11bef58799140&city=南京

    但是在android客户端这样写是拿不到正确的返回数据的。

    原因是这样,通过浏览器向服务器发送get请求的时候默认的格式是 iso-8859-1

    通过浏览器发送带有中文的个头请求:

    http://apicloud.mob.com/v1/weather/query?key=11bef58799140&city=%E5%8D%97%E4%BA%AC

    这里的

    %E5%8D%97%E4%BA%AC 就是转码后的 南京

    那么客户端向服务器发送get请求的时候如何将数据转码呢?

    这里就会用到 URLEncoder.encode( s , String )

    该方法包含两个参数:第一个参数:  是需要转码的文字(String 类型)

              第二个参数:  是要转成的格式 例如utf-8(String 类型)

    这是官方api的用法

    public static String encode (String s)
    
    Added in API level 1
    This method was deprecated in API level 1.
    Use encode(String, String) instead.
    
    Equivalent to encode(s, "UTF-8").

    该方法在使用时需要try catch 捕获异常;

     
     String city = "南京";
            try {
                city = URLEncoder.encode(city , "UTF-8");
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
  • 相关阅读:
    Centos7 keepalived 修改日志路径
    mysql 双主复制 centos7
    CentOs 7 安装mysql5.7.18(二进制版本)
    oracle、mysql新增字段,字段存在则不处理
    mysql+ibatis 批量插入
    oracle+ibatis 批量插入-支持序列自增
    oracle 批量插入-支持序列自增
    sftp上传
    java
    mysql
  • 原文地址:https://www.cnblogs.com/wobeinianqing/p/5401711.html
Copyright © 2011-2022 走看看