Rumah >Java >javaTutorial >Cara menggunakan pengekodan dan penyahkodan URL dalam Java
java.net.URLDecoder.decode(url, format penyahkodan) kaedah penyahkod.
ditukar kepada rentetan biasa, URLEncoder.decode(url, format pengekodan) menukar rentetan biasa kepada rentetan dalam format yang ditetapkan
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")); } }
Pengekodan dalam js
encodeURL(String url)
berfungsi untuk mengekod rentetan sebagai url, iaitu untuk mengekodkan url sepenuhnya. @ & = tidak akan terlepas
<script > $(function(){ alert("haha"); var str = 'http://www.baidu.com?name=张三&age=18'; 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>
encodeURLComponent()
Pengecualian dalam thread "utama" java. IllegalArgumentException: URLDecoder: Aksara hex yang tidak sah dalam corak escape (%) - Untuk rentetan input: "u9"
di java.net.URLDecoder.decode(URLDecoder.java:194)Gunakan %25 untuk menggantikan tanda % dalam rentetanJava memanggil URLDecoder.decode(str, "UTF-8"); aksara memerlukan pelarian khas,
Penyelesaian
url = url.replaceAll("%(?![0-9a-fA-F]{2})", "%25"); String urlStr = URLDecoder.decode(url, "UTF-8");
Atas ialah kandungan terperinci Cara menggunakan pengekodan dan penyahkodan URL dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!