【java】对URL中的中文和符号进行UrlEncode转码

您所在的位置:网站首页 javaurlencode转码 【java】对URL中的中文和符号进行UrlEncode转码

【java】对URL中的中文和符号进行UrlEncode转码

2023-10-07 01:17| 来源: 网络整理| 查看: 265

需求

我们有一个需求,是和钉钉审批打通的,然后有需要放附件的地方,没有用钉钉云盘附件的那种形式,而是直接用了单行文本框,放一个链接的形式。 然后我们文件上传用的是ali的oss,上传完成以后会得到一个类似 ossHost/文件夹名/文件名的链接,此时就会有一个问题产生,如果我的链接中带中文,当我把这个链接放到钉钉的文本框中提交以后,从中文部分开始,不会被识别为链接的一部分,这可就阿西吧了。

当时发现这个问题的时候,我基本是懵的,脑袋里完全没有解决方案,然后组长说,你试试urlencode一下再放到文本框里。

于是就得到了解决方案,下面放下代码

代码 public static void main(String[] args) throws UnsupportedEncodingException { String url="https://test.oss-cn-beijing.aliyuncs.com/product/4567455【合规】某个使用条例.pdf"; Matcher matcher =Pattern.compile("[\\u4e00-\\u9fa5]|[\\u3002\\uff1b\\uff0c\\uff1a\\u201c\\u201d\\uff08\\uff09\\u3001\\uff1f\\u300a\\u300b\\u3010\\u3011]").matcher(url); while (matcher.find()) { String tmp = matcher.group(); try { url = url.replaceAll(tmp, java.net.URLEncoder.encode(tmp, "utf-8")); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } System.out.println(url); } 解释

[\\u4e00-\\u9fa5] 代表匹配所有中文。 [\\u3002\\uff1b\\uff0c\\uff1a\\u201c\\u201d\\uff08\\uff09\\u3001\\uff1f\\u300a\\u300b\\u3010\\u3011] 这块是我需要匹配的符号这些,如果有需要定制的,可以自己加上。 比如用unicode 转换一下就知道自己该匹配谁了。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3