Java應用打包後運行需要注意編碼問題_java

來源:互聯網
上載者:User

最近在做一個項目,項目總的來說就是和資料庫打交道,取出資料來通過HTTP協議提交到一個介面上去。具體功能不多說了,只是講這裡面的一點——編碼問題

項目當中,涉及到取所有資料的MD5值。

在Java項目中,個人喜歡將項目的預設編碼改為UTF-8。使用的開發工具以Eclipse為主。然而,奇怪的問題出現了。當我在IDE中對項目進行調試的時候沒有任何問題,但是打成了jar包後再通過

java -jar project.jar

啟動並執行時候,每次提交資料,介面都會返回資料說我的簽名不正確。換句話說就是我的最後一步,做MD5運算的時候出了問題。

為什麼打了jar包就不行呢?幾經波折,又是查看參數的hashCode,又是檢查所有提交內容的十六進位資料,發現是文本編碼出了問題。在Eclipse中是正確的,但是打出jar包後,啟動命令列一直沒設定字串預設編碼,因此java虛擬機器就按照所在系統的預設編碼運行了。我使用的是Windows環境,那麼自然是GBK編碼。

後來通過查閱資料,解決的辦法就是加一個參數指定編碼:

java -Dfile.encoding=utf-8 -jar project.jar

這樣就可以了。工具正常運行了。

感謝閱讀,希望能協助到大家,謝謝大家對本站的支援!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.