ClassLoader的getResource方法使用了utf-8对路径信息进行了编码,当路径中存在中文和空格时,他会对这些字符进行转换,这样,得到的往往不是我们想要的真实路径,在此,调用了URLDecoder的decode方法进行解码,以便得到原始的中文及空格路径
例如:结果是
/D:/%e9%bb%91%e9%a9%ac%e8%b5%84%e6%96%99/objectSpace/JDBC/day01_jdbc/out/production/day01_jdbc/jdbc.properties
而我们期望是
/D:龙王/objectSpace/JDBC/day01_jdbc/out/production/day01_jdbc/jdbc.properties。
这里我们只要在获取到路径之前把返回值decode下就可以了. 用utf-8编码. Java代码 :
ClassLoader classLoader = JdbcUtils.class.getClassLoader();URL res = classLoader.getResource("jdbc.properties");String path = res.getPath();path = .URLDecoder.decode(path,"utf-8");
如果觉得《java中获取配置文件路径中含有中文 出现乱码的情况解决方案》对你有帮助,请点赞、收藏,并留下你的观点哦!