解决URLEncoder.encode 编码空格变 + 号

jdk自带的URL编码工具类 URLEncoder 在对字符串进行URI编码的时候,会把空格编码为 + 号。
空格的URI编码其实是:%20
解决办法:对编码后的字符串,进行 + 号替换为 %20。总感觉这种方式不优雅。

使用spring提供的 UriUtils 来代替URLEncoder进行编码

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;

import org.springframework.web.util.UriUtils;

public class MainTest {
	public static void main(String[] args) throws UnsupportedEncodingException {
		String encode = URLEncoder.encode("2023-04-13 00:00:00", "UTF-8");
        String decode = URLDecoder.decode("2023-04-13%2000%3A00%3A00", "UTF-8");
        String springEncode = UriUtils.encode("2023-04-13 00:00:00", "utf-8");
        String springDecode = UriUtils.decode("2023-04-13%2000%3A00%3A00", "utf-8");
        System.out.println("encode = " + encode);
        System.out.println("decode = " + decode);
        System.out.println("springEncode = " + springEncode);
        System.out.println("springDecode = " + springDecode);
	}
}

结果:

encode = 2023-04-13+00%3A00%3A00
decode = 2023-04-13 00:00:00
springEncode = 2023-04-13%2000%3A00%3A00
springDecode = 2023-04-13 00:00:00
posted @   我也有梦想呀  阅读(2165)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程
点击右上角即可分享
微信分享提示