• 2024-11-21
宇哥博客 前端开发 Java/JS/PHP中字符串编码解码URLEncoder/encodeURI/urlencode函数对比

Java/JS/PHP中字符串编码解码URLEncoder/encodeURI/urlencode函数对比

在开发中经常需要将字符串或url进行编码、解码,下面分别测试Java、JS、PHP中相关函数的应用。

Java

  • 编码 URLEncoder.encode()
  • 解码 URLDecoder.decode()
String s1="3 ?#:&(@!~-_.*')好a+/";
		String s2="";
		String s3="";
		try {
			s2 = URLEncoder.encode(s1, "utf-8");
		} catch (UnsupportedEncodingException e1) {
			e1.printStackTrace();
		}
		try {
			s3=URLDecoder.decode(s2, "utf-8");
		} catch (UnsupportedEncodingException e1) {
			e1.printStackTrace();
		}
		System.out.println("原字符串:" + s1);
		System.out.println("编码:" + s2);
		System.out.println("解码:" + s3);

运行结果:

原字符串:3 ?#:&(@!~-_.*')好a+/
编码:3+%3F%23%3A%26%28%40%21%7E-_.*%27%29%E5%A5%BDa%2B%2F
解码:3 ?#:&(@!~-_.*')好a+/

JS

  • 编码 encodeURI()
  • 解码 decodeURI()
let s1=encodeURI("3 ?#:&(@!~-_.*')好a+/");
let s2=decodeURI(s1);
console.log('编码', s1);
console.log('解码', s2);

运行结果:

编码 3%20?#:&(@!~-_.*')%E5%A5%BDa+/
解码 3 ?#:&(@!~-_.*')好a+/
  • 编码 encodeURIComponent()
  • 解码 decodeURIComponent()
let s1=encodeURIComponent("3 ?#:&(@!~-_.*')好a+/");
let s2=decodeURIComponent(s1);
console.log('编码', s1);
console.log('解码', s2);

运行结果:

编码 3%20%3F%23%3A%26(%40!~-_.*')%E5%A5%BDa%2B%2F
解码 3 ?#:&(@!~-_.*')好a+/

encodeURIComponent()函数不会对 ()-_.*~!’ 这些符号进行编码。

PHP

  • 编码 urlencode()
  • 解码 urldecode()
$s="3 ?#:&(@!~-_.*')好a+/";
$s2 = urlencode($s);
$s3 = urldecode($s2);

echo '编码:'.$s2.'<br/>';
echo '解码:'.$s3;

运行结果:

编码:3+%3F%23%3A%26%28%40%21%7E-_.%2A%27%29%E5%A5%BDa%2B%2F
解码:3 ?#:&(@!~-_.*')好a+/
本文来自网络,不代表本站立场,转载请注明出处。https://www.ygbks.com/3698.html

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

返回顶部