Home > Java > javaTutorial > body text

How to use URL encoding and decoding in Java

王林
Release: 2023-05-08 17:46:08
forward
3042 people have browsed it

Use url to encode and decode

Encoding and decoding classes

java.net.URLDecoder.decode(url, decoding format) decoder. Decoding method.

Convert into an ordinary string, URLEncoder.decode(url, encoding format) converts an ordinary string into a string in the specified format

package com.zixue.springbootmybatis.test;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;
/** 编码Encode后都返回了新的字符串,编码后的字符串不能跨平台,所以要统一制定编码格式
 *  需要注意的是在url中 "\" '&' '=' ':' '/'都是具有特殊意义的符号,这些符号一旦被编译后就会失去本身的
 *  含义,导致无法被解析,
 *  所以在url中需要分块编码,
 *  解码Decoder类中decode方法作用是变回成普通字符,其中加号会变成空格,
 * */
public class testtest {
    public static void main(String[] args) throws UnsupportedEncodingException {
       String url = "http://www.baidu.com?name='张三'&age=18 ";
       String encodeStr = URLEncoder.encode(url,"UTF-8");
        System.out.println(encodeStr);
        System.out.println(URLDecoder.decode(encodeStr,"UTF-8"));
    }
}
Copy after login

How to use URL encoding and decoding in Java

Encoding in js

  • encodeURL(String url) The function is to encode the string as a url, which is to fully encode the url. All pairs of: ? @ & = will not be escaped

  • encodeURLComponent() It is used to encode the string, generally used for a certain parameter that requires a single compilation When used, the parameter can be Chinese

<script >
			$(function(){
				alert("haha");
				var str = &#39;http://www.baidu.com?name=张三&age=18&#39;;
				console.log(str);
				a(str);
			});
			function a (s){
				var h = encodeURI(s);
				console.log(h);
				var y = encodeURIComponent("张三");
				console.log(y);
				var g = "www.baidu.com?name=";
				var i  = encodeURIComponent("张三");
				console.log(g+i);
				
			}
		</script>
Copy after login

How to use URL encoding and decoding in Java

Java correct URL decoding method: URLDecoder.decode

Exception in thread "main" java.lang.IllegalArgumentException: URLDecoder: Illegal hex characters in escape (%) pattern - For input string: "u9"
at java.net.URLDecoder.decode(URLDecoder.java:194)
at com.hbzx.controller.PayResultController.main(PayResultController.java:253)

Java calls URLDecoder.decode(str, "UTF-8"); The main reason why the above exception is thrown % is a special character in the URL and needs to be escaped.

Solution

Use % to replace the % sign in the string

 url = url.replaceAll("%(?![0-9a-fA-F]{2})", "%25");
   String urlStr = URLDecoder.decode(url, "UTF-8");
Copy after login

The above is the detailed content of How to use URL encoding and decoding in Java. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:yisu.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template