老鬼的博客 来都来啦,那就随便看看吧~
Java URLEncode空格被转换成+号
发布于: 2020-12-18 更新于: 2020-12-18 分类于:  阅读次数: 

一:项目背景

1
2
3
由于微信昵称或存在emojo表情,造成mysql数据库无法直接
进行存储,方案是将获取到的nickName做URLEncode,不过这
里就存在urlencode以后空格会被转换成+号。

二:处理方案

2.1 方法

1
2
3
将nickName在进行urlencode之前先将空格转换成%20,
然后再做urlencode,前端在解析的时候先使用
decodeURIComponent然后再将%20提换成空格。

2.2 Java方法

1
2
3
4
5
6
7
8
9
public static String encodeNickName(String nickName) {
MyAssert.isNotEmpty(nickName, "nickName is null");
nickName = nickName.replace(" ", "%20");
try {
return URLEncoder.encode(nickName, "UTF-8");
} catch (UnsupportedEncodingException e) {
}
return "";
}

2.3 前端方法

1
2
3
var nickName = "";//这里是后台返回的urlencode数据
nickName = decodeURIComponent(nickName);
nickName = nickName.replace('%20',' ');
*************感谢您的阅读*************