如何在cmd java main方法 傳入含有中文的參數亂碼問題解決

今天發現要想在cmd的窗口中運行java的main方法時要想傳入含有的中文的的參數沒有那麼容易, 如傳入的文件路徑裏有中文或者是文件名是中文的,傳到main裏的時候得到的是一個亂碼了,然後就嘗試各種編碼參數了,其中最容易想到的應該就是-Dfilecoding=UTF8,然後這個參數是也是沒有用的,因爲這個參數是指定java.exe這個控制檯的編碼格式,對於cmd傳參數給main的編碼沒有任何幫助.

谷歌一下就能在stackoverflow上找到答案,因爲cmd它轉爲採用的編碼是ASCII,所以中文沒有辦法編碼所以傳給java時就是一個亂碼,所以把這個cmd的默認編碼修改一下就可以了,使用chcp命令,如切換到utf8字符集上就可以使用"chcp 65001"然後會顯示出來當前活動的編碼頁,注意:這個操作只是針對當前這個cmd窗口的所以必須要在這個窗口來的執行那個含有中文的命令.

這樣的就解決了問題,爲了方便我把切換編碼弄成一個bat批處理這樣就方便了如下圖


這樣我就可以接受含有中文的參數了其中"%1 %2 %3"是傳入的參數

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章