在java中有時獲取文件路徑,獲取的路徑中存在中文或者是空格的時候,路徑出現亂碼。這個問題困擾了我好久,用過各種的轉碼都無濟于事。在后來終于解決了,在這里和大家分享一下,其實也就是加一行代碼的問題。
我在項目的是使用
1
|
string path = this .getclass().getclassloader().getresource( "/" ).getpath().substring( 1 ); |
這樣來獲得當前類的文件路徑的。但是這樣得到的是亂碼。后來經過跟蹤 在this.getclass().getclassloader()返回的url這里的路徑還是沒錯的。只是后面有問題。所以轉碼的話應該是要轉url.所以在后面添加了這樣一行代碼。
1
|
path = java.net.urldecoder.decode(path, "utf-8" ); |
這樣做獲得的路徑就沒問題了。
呵呵 此問題解決!
1
2
3
|
string path = this .getclass().getclassloader().getresource( "/" ).getpath().substring( 1 ); path = java.net.urldecoder.decode(path, "utf-8" ); |
以上這篇完美解決java獲取文件路徑出現亂碼的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。
原文鏈接:https://blog.csdn.net/yss_luowei/article/details/3082224