解决Java⼯程URL路径中含有中⽂的情况
问题:
当Java⼯程路径中含有中⽂时,得不到正确的路径
解决:
这其实是编码转换的问题。当我们使⽤ClassLoader的getResource⽅法获取路径时,获取到的路径被de(path,"utf-8")编码了,当路径中存在中⽂和空格时,他会对这些字符进⾏转换,这样,得到的往往不是我们想要的真实路径,所以我们可以调⽤URLDecoder.decode()⽅法进⾏解码,以便得到原始的中⽂及空格路径。
Java代码 :
String packagePath = Path().replaceAll("%20","");//解决路径中含有空格的情况
packagePath = java.URLDecoder.decode(packagePath,"utf-8"); //解决路径包含中⽂的情况url编码处理
结果:
/
D:/Java%e7%a8%8b%e5%ba%8f%ef%bc%88idea)/smartframework/core/target/classes/
解码之后:/D:/Java程序(idea)/smartframework/core/target/classes/
关于解码和编码
使⽤指定的编码机制将字符串转换为 application/x-www-form-urlencoded 格式
URLDecoder.decode(String s, String enc)
使⽤指定的编码机制对 application/x-www-form-urlencoded 字符串解码。
发送的时候使⽤de编码,接收的时候使⽤URLDecoder.decode解码,都按指定的编码格式进⾏编码、解码,可以保证不会出现乱码
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论