• 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();
            }
  • 相关阅读:
    springboot 默认日志
    redis 实现分布式锁
    java 线程池等待所有线程执行完毕
    java 线程池
    springcould 五大组件详解
    java 导出excel
    java 下载excel模板
    java 8 通过某个字段去重
    leetcode算法题-461.汉明距离
    java Barcode4j生成条形码并添加至pdf打印
  • 原文地址:https://www.cnblogs.com/wobeinianqing/p/5401711.html
Copyright © 2020-2023  润新知