Java读取文件时中文路径处理

在日常Java操作文件开发中,经常会碰到因为中文路径无法操作文件的问题,但是又因为英文不给力又不得不用中文命名,所以就因为这中文在使用中就会遇到一系列的问题。

TestURL().class.getResource("").getPath()或TestURL().class.getResource("").getFile()获得的路径,不能被FileReader()和FileWriter()直接应用。
原因是URL对空格,特殊字符(%,#,[]等)和中文进行了编码处理。

读取文件路径时可能存在以下情况:

1、空格,如果出现空格会转变成“%20”

2、中文路径,如果出现中文路径会变成URI编码“%e5%bc%80%e5%8f%91%e5%b7%a5%e7%a8%8b”

处理以上问题,可以有如下解决方法:

1、对于空格问题,可以使用replaceAll("%20"," ")

2、URLDecoder.decode("string","UTF-8");,但是这种方法当路径上有+号时会变成空格,所以也会有问题。

3、完美解决方法:getResource("").toURI().getPath()。可以同时解决以上两个问题,但是需要处理URISyntaxException异常,比较麻烦点。

你可能感兴趣的:(Java,java,乱码,编程语言)