一:项目背景
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',' ');
|
*************感谢您的阅读*************