Java对URL中的中文进行UrlEncode

Posted Ferocious

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java对URL中的中文进行UrlEncode相关的知识,希望对你有一定的参考价值。

有些中文或者有空格的、传入参数带中文的URL需要用如下方式进行encode方能进行真正的请求:

public static String urlEncodeURL(String str) {
        try {
            String result = URLEncoder.encode(str, "UTF-8");
            result = result.replaceAll("%3A", ":").replaceAll("%2F", "/").replaceAll("\\\\+", "%20");//+实际上是 空格 url encode而来
            return result;
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return null;
    }

只对url地址中的中文进行编码

public static String encode(String url)    {        
try {             
  Matcher matcher =Pattern.compile([\\\\u4e00\\\\u9fa5]").matcher(url);             
  int count = 0;             
  while (matcher.find()) {               
  //System.out.println(matcher.group());   String tmp=matcher.group();
  url=url.replaceAll(tmp,java.net.URLEncoder.encode(tmp,"gbk"));
  }   
// System.out.println(count);   //url = java.net.URLEncoder.encode(url,"gbk"); } catch (UnsupportedEncodingException e) {   // TODO Auto-generated catch block
  e.printStackTrace();
} return url; }

 

以上是关于Java对URL中的中文进行UrlEncode的主要内容,如果未能解决你的问题,请参考以下文章

jmeter参数中的url转码和url解码

对网址中的斜线/进行urlencode的定义在哪

解码URLDecode和编码URLEnCode

PHP函数——urlencode() 函数

无法在 python 中对 URL 进行 urllib.urlencode

为啥需要urlEncode