Java應用打包后運行需要注意編碼問題
最近在做一個項目,項目總的來說就是和數(shù)據(jù)庫打交道,取出數(shù)據(jù)來通過HTTP協(xié)議提交到一個接口上去。具體功能不多說了,只是講這里面的一點——編碼問題
項目當中,涉及到取所有數(shù)據(jù)的MD5值。
在Java項目中,個人喜歡將項目的默認編碼改為UTF-8。使用的開發(fā)工具以Eclipse為主。然而,奇怪的問題出現(xiàn)了。當我在IDE中對項目進行調試的時候沒有任何問題,但是打成了jar包后再通過
java -jar project.jar
運行的時候,每次提交數(shù)據(jù),接口都會返回數(shù)據(jù)說我的簽名不正確。換句話說就是我的最后一步,做MD5運算的時候出了問題。
為什么打了jar包就不行呢?幾經(jīng)波折,又是查看參數(shù)的hashCode,又是檢查所有提交內容的十六進制數(shù)據(jù),發(fā)現(xiàn)是文本編碼出了問題。在Eclipse中是正確的,但是打出jar包后,啟動命令行一直沒設置字符串默認編碼,因此java虛擬機就按照所在系統(tǒng)的默認編碼運行了。我使用的是Windows環(huán)境,那么自然是GBK編碼。
后來通過查閱資料,解決的辦法就是加一個參數(shù)指定編碼:
java -Dfile.encoding=utf-8 -jar project.jar
這樣就可以了。工具正常運行了。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關文章
Java求一個分數(shù)數(shù)列的前20項之和的實現(xiàn)代碼
這篇文章主要介紹了Java求一個分數(shù)數(shù)列的前20項之和的實現(xiàn)代碼,需要的朋友可以參考下2017-02-02最安全的加密算法Bcrypt防止數(shù)據(jù)泄露詳解
這篇文章主要為大家介紹了最安全的加密算法Bcrypt防止數(shù)據(jù)泄露詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-09-09java理論基礎Stream?reduce實現(xiàn)集合元素歸約
這篇文章主要為大家介紹了java理論基礎Stream?reduce實現(xiàn)集合元素歸約示例詳解有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步2022-03-03使用SpringBoot中的Schedule定時發(fā)送郵件的方法
在SpringBoot中,你可以使用@Scheduled注解來創(chuàng)建定時任務,@Scheduled注解可以應用于方法上,表示這個方法是一個定時任務,可以根據(jù)指定的時間間隔或固定時間執(zhí)行,本文就給大家介紹一下如何使用SpringBoot中的Schedule定時發(fā)送郵件,需要的朋友可以參考下2023-08-08@JsonFormat處理LocalDateTime失效的問題
這篇文章主要介紹了關于@JsonFormat處理LocalDateTime失效的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-08-08