Android 解決檔名包含中文 空格和問號問題

2021-06-27 09:25:03 字數 662 閱讀 5052

//對路徑進行編碼 然後替換路徑中所有空格 編碼之後空格變成「+」而空格的編碼表示是「%20」 所以將所有的「+」替換成「%20」就可以了
url = urlencoder.encode(urlstr,"utf-8").replaceall("\\+", "%20");

//編碼之後的路徑中的「/」也變成編碼的東西了 所有還有將其替換回來 這樣才是完整的路徑
url = url.replaceall("%3a", ":").replaceall("%2f", "/");

以上方法可以用於檔名中包含空格和中文的情況,如果檔名中還包含問號那麼還需要執行以下步驟:

url = url.replaceall("%3f", "?");

判斷乙個字串中是否含有中文:

public void checkchar(string str)else

} }

charat()函式返回的是乙個字元,字元為unicode編碼,127以前為字元數字和英文,中文大於127,根據這一點可以判斷字串中是否包含中文

Android 獲取檔名 亂碼

sdcard e8 b0 b7 e6 ad 8c e9 bb 91 e6 9d bf e6 8a a5 e6 95 b0 e5 ad a6 e4 b9 8b e.tct 獲取檔名的 if intent.action view.equals action catch unsupportedencodi...

Linux 中文檔名亂碼解決 FTP檔名亂碼

linux下中文顯示亂碼是因為linux中使用的是utf 8編碼 windows使用的是gbk編碼 可以在linux中使用convmv工具來對檔名進行轉碼 當然如果檔名轉碼為utf 8後 在windwos資源管理器中使用ftp進行檢視時就會亂碼 可以把liunx中的檔案轉碼成gbk後在windows...

檢測檔名中是否包含中文或空格

def is chinese char 判斷是否包含中文 ifnot isinstance char,unicode char char.decode utf8 ifre.search ur u4e00 u9fa5 char return true else return false 檢測檔名中是否...