如题,短链接项目,传入的可能为中文,redirect 后中文变'?',URLEncoder.encode 不能对整个链接编码,不然会出现“过度编码”的问题,有什么好的解决方案吗?
1
magic961102 OP 手动置顶
|
2
JinTianYi456 2021-02-04 22:58:36 +08:00
是不是这个? /t/737430
|
3
magic961102 OP @JinTianYi456 但是这个没有解决问题
|
4
magic961102 OP 或者有没有第三方的包能实现
|
5
luozic 2021-02-05 00:13:45 +08:00
写一个去除部分符号的编码方式。
|
6
chendy 2021-02-05 00:18:09 +08:00
SpringWeb 的 UriComponenetBuilder,不知道能不能满足需求:
public static void main(String[] args) throws Exception { String urlStr = "http://test.com?q=真不戳"; UriComponentsBuilder builder = UriComponentsBuilder.fromUriString(urlStr); String uriString = builder.toUriString(); System.out.println(uriString); String decodeUriString = URLDecoder.decode(uriString, StandardCharsets.UTF_8.name()); System.out.println(decodeUriString); } |
7
yksoft1test 2021-02-05 08:21:38 +08:00
把域名和路径分开编码,域名用 punycode,路径先 UTF8 化再 URLEncode 。
|
8
magic961102 OP @yksoft1test 分开比较麻烦,长链接传进来最好能完整处理
|
9
magic961102 OP @chendy 我一会试试看
|
10
magic961102 OP @luozic 看来自己写是最灵活的了
|