问题来源
日常开发中,有时需要获取一些文件的路径,但由于业务环境的需要存在中文路径的情形,因此在开发中我们经常使用类加载器或类类型的 getResource 方法获取路径时的中文路径就会变体,例如:空格会转换为“%20”等情形,故获取真实的路径就是我们所需要的。
解决方案
- 方案1-去除URL中转换符在URL解码
String packagePath = url.getPath().replaceAll("%20"," "); //解决路径中含有空格的情况
packagePath = java.net.URLDecoder.decode(packagePath, "utf-8"); //解决路径包含中文的情况
- 方案2-url.toURI().getPath()
String packagePath = url.toURI().getPath(); //完美解决 -但有异常需要处理