【java】对URL中的中文和符号进行UrlEncode转码
需求
我们有一个需求,是和钉钉审批打通的,然后有需要放附件的地方,没有用钉钉云盘附件的那种形式,而是直接用了单行文本框,放一个链接的形式。
然后我们文件上传用的是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 转换一下就知道自己该匹配谁了。
【java】对URL中的中文和符号进行UrlEncode转码相关推荐
- java http url 编码_Java中的HTTP URL地址编码
java.net.URI类可以帮助;在URL的文档中找到 Note, the URI class does perform escaping of its component fields in ce ...
- java jdbc url编码_java中jdbc/sql出现编码问题
com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Unknown column '???è??é"?è??' in 'field li ...
- 解决Java工程URL路径中含有中文的情况
问题: 当Java工程路径中含有中文时,得不到正确的路径 *** 解决: 这其实是编码转换的问题.当我们使用ClassLoader的getResource方法获取路径时,获取到的路径被URLEncod ...
- java处理url中的特殊字符%等
java处理url中的特殊字符(如&,%...) URL(Uniform Resoure Locator,统一资源定位器)是Internet中对资源进行统一定位和管理的标志. 一个完整的URL ...
- java : enum、创建文件和文件夹、删除文件和文件夹、获得项目绝对路径、写入数据到excel中、java代码中两种路径符号写法、读取、写入text文件...
java : enum http://www.cnblogs.com/hyl8218/p/5088287.html 创建文件和文件夹.删除文件和文件夹 http://www.cnblogs.com/m ...
- java中uri什么意思,java URI URL 个人理解。
java URI URL 个人理解. URI 是资源标识符.就是相当于一个人的家庭住址. URL和URI类似.是资源定位的. 和URI不同的就是URL提供了获取东西的方法. java.io.Input ...
- java 字符串原样输出_Java 中如何原样输出转义符号
标签: Java 中的转义字符有好几种,常见的有: 八进制转义字符,格式:\ + 1到3位八进制数字,如\1, \20,范围为 \0 ~ \377,即最大值为255. Unicode转义字符,格式:\ ...
- java 获取域名_Java获取域名,Java从URL地址中获取域名,Java从Request 获取域名
Java 获取主域名方法有很多种,有的用截串方式,我用的一个投机取巧的方式,这个获取域名的方法比较简单,代码也较少. Java从URL地址中获取域名//这样获取的方式,不请求就能获取到域名 URL ...
- Java对URL中的中文进行UrlEncode转码
Java对URL中的中文进行UrlEncode urleocode只是为了url中一些非ascii字符,可以正确无误的被传输. 而且有的含有中文或者特殊字符的url不能被识别,因此需要进行Encode ...
最新文章
- C#中Socket通信编程的异步实现
- SAP S/4HANA使用ABAP获得生产订单的状态
- ArcGIS教程:Iso 聚类非监督分类
- JS重写toString(),打印想要的值
- 什么是ZigBee技术
- 设计模式之adapter模式
- c语言画圆登录窗口,C语言画圆问题。怎么跳过画图界面直接出来了?
- fatal error: krb5.h: 没有那个文件或目录
- Ubuntu18.04(Gnome桌面)主题美化,Mac私人定制
- Android设置拍照或者上传本地图片
- 浪潮服务器开启虚拟化功能,浪潮服务器-虚拟化解决方案.ppt
- ACM------吃在工大(合工大OJ 1359)
- java-a实现压缩与解压缩(zip、gzip)
- 我也DIY一个Android遥控器-全部开源
- 应届生求职前端工程师岗位,该如何准备?
- 《Loy解说SpringCloud之Zuul》
- stm32之蓝牙无线超声波测距
- 广告SDK平台中的CPA、CPS、CPM、CPT、CPC 是什么
- 央妈是怎么印钱的(1)--资产负债表
- php windows 信号,win10连接投影仪无信号怎么办