Maven發(fā)布Jar包中文亂碼怎么辦-創(chuàng)新互聯(lián)

這篇文章主要介紹Maven發(fā)布Jar包中文亂碼怎么辦,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

成都創(chuàng)新互聯(lián)長期為上1000家客戶提供的網(wǎng)站建設服務,團隊從業(yè)經(jīng)驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為德欽企業(yè)提供專業(yè)的網(wǎng)站制作、成都網(wǎng)站建設,德欽網(wǎng)站改版等技術服務。擁有十余年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

Maven deploy 亂碼

今天使用Maven發(fā)布Jar包時,發(fā)布功能都是正常的也成功上傳到了倉庫,就是項目跑越來后出中文中現(xiàn)了亂碼:

{
 "code": "SUCCESS",
 "success": true,
 "message": "鎿嶄綔鎴愬姛",
 "data": [
  {
   "key": "app_force_login",
   "value": "false"
  }
 ]
}

之前一直在用的mac開發(fā),一直也沒碰到過這樣的問題。后來換了家里的 Windows 臺式機代碼拉下來后,使用maven deploy發(fā)布了一次common的Jar包,然后所有common包中的中文都亂碼了,一開始還以為是服務器環(huán)境的問題,后來發(fā)現(xiàn)在執(zhí)行maven deploy時輸出了一些警告:

[WARNING] /C:/Users/yjwfn/Desktop/csbaic-common/src/main/java/com/csbaic/common/convert/ObjectConvert.java:[10,5] 編碼GBK的不可映射字符
[WARNING] /C:/Users/yjwfn/Desktop/csbaic-common/src/main/java/com/csbaic/common/convert/ObjectConvert.java:[10,13] 編碼GBK的不可映射字符
[WARNING] /C:/Users/yjwfn/Desktop/csbaic-common/src/main/java/com/csbaic/common/convert/ObjectConvert.java:[10,24] 編碼GBK的不可映射字符
[WARNING] /C:/Users/yjwfn/Desktop/csbaic-common/src/main/java/com/csbaic/common/convert/ObjectConvert.java:[18,9] 編碼GBK的不可映射字符
[WARNING] /C:/Users/yjwfn/Desktop/csbaic-common/src/main/java/com/csbaic/common/convert/ObjectConvert.java:[18,17] 編碼GBK的不可映射字符
[WARNING] /C:/Users/yjwfn/Desktop/csbaic-common/src/main/java/com/csbaic/common/convert/ObjectConvert.java:[25,9] 編碼GBK的不可映射字符
[WARNING] /C:/Users/yjwfn/Desktop/csbaic-common/src/main/java/com/csbaic/common/result/Result.java:[10,8] 編碼GBK的不可映射字符
[WARNING] /C:/Users/yjwfn/Desktop/csbaic-common/src/main/java/com/csbaic/common/result/Result.java:[10,28] 編碼GBK的不可映射字符
[WARNING] /C:/Users/yjwfn/Desktop/csbaic-common/src/main/java/com/csbaic/common/result/ResultCode.java:[23,15] 編碼GBK的不可映射字符
[WARNING] /C:/Users/yjwfn/Desktop/csbaic-common/src/main/java/com/csbaic/common/result/ResultCode.java:[25,74] 編碼GBK的不可映射字符
[WARNING] /C:/Users/yjwfn/Desktop/csbaic-common/src/main/java/com/csbaic/common/result/ResultCode.java:[49,12] 編碼GBK的不可映射字符
[WARNING] /C:/Users/yjwfn/Desktop/csbaic-common/src/main/java/com/csbaic/common/result/ResultCode.java:[49,14] 編碼GBK的不可映射字符
[WARNING] /C:/Users/yjwfn/Desktop/csbaic-common/src/main/java/com/csbaic/common/result/ResultCode.java:[60,12] 編碼GBK的不可映射字符
[WARNING] /C:/Users/yjwfn/Desktop/csbaic-common/src/main/java/com/csbaic/common/result/ResultCode.java:[60,14] 編碼GBK的不可映射字符
[WARNING] /C:/Users/yjwfn/Desktop/csbaic-common/src/main/java/com/csbaic/common/exception/BizRuntimeException.java:[7,11] 編碼GBK的不可映射字符
[WARNING] /C:/Users/yjwfn/Desktop/csbaic-common/src/main/java/com/csbaic/common/exception/BizRuntimeException.java:[14,12] 編碼GBK的不可映射字符

打開源碼一看又是正常的中文

修改 Idea 的編碼

首先看了一下 Idea的文件編碼是不是UTF-8,發(fā)現(xiàn)在 Windows 環(huán)境下項目中的編碼是繼承系統(tǒng)的GBK,全部修改成UTF-8試下:

Maven發(fā)布Jar包中文亂碼怎么辦

重新執(zhí)行:

mvn clean deploy -DskipTests

還是樣的出現(xiàn)亂碼警告??!然后查看對應類ResultCodeclass文件發(fā)現(xiàn)里面也是亂碼的:

public interface ResultCode {
  ResultCode SUCCESS = new DefaultResultCode("SUCCESS", "鎿嶄綔鎴愬姛", true);
  ResultCode ERROR = new DefaultResultCode("ERROR", "鎿嶄綔澶辮觸", false);
  ResultCode BAD_REQUEST = new DefaultResultCode("BAD_REQUEST", "璇鋒眰閿欒\ue1e4", false);
  ResultCode NOT_FOUND = new DefaultResultCode("NOT_FOUND", "璇鋒眰鏁版嵁鏈\ue045壘鍒?", false);

  String getCode();

  String getMessage();

  Boolean isSuccess();

  static ResultCode error(String code, String message) {
    return new DefaultResultCode(code, message, false);
  }

  static ResultCode ok(String code, String message) {
    return new DefaultResultCode(code, message, true);
  }
}

猜想可能是某種字符編碼對應不上。

修改 Maven 編譯插件編碼

修改文件/idea的編碼后,還是一樣亂碼。我仔細查看了下mvn發(fā)布日志發(fā)現(xiàn)了些有用的信息:

[WARNING] File encoding has not been set, using platform encoding GBK, i.e. build is platform dependent!

大概意思就是沒有設置文件編碼,使用系統(tǒng)默認的編碼GBK,根據(jù)指示找到項目的pom.xml將插件的編碼改為utf-8

  <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>8</source>
          <target>8</target>
          <encoding>utf-8</encoding>
        </configuration>
      </plugin>

總結

問題的產生是由于公司平臺用的Mac電腦并且系統(tǒng)使用的字符集是UTF-8,切換到Windows后由于默認的字符集是GBK,而且沒有指定maven-compiler-plugin插件的編碼,導致編譯出來的字節(jié)碼文件中的中文亂碼了。

以上是“Maven發(fā)布Jar包中文亂碼怎么辦”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注創(chuàng)新互聯(lián)網(wǎng)站建設公司行業(yè)資訊頻道!

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)建站bm7419.com,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

網(wǎng)頁標題:Maven發(fā)布Jar包中文亂碼怎么辦-創(chuàng)新互聯(lián)
文章地址:http://bm7419.com/article34/ceoese.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、軟件開發(fā)、網(wǎng)站營銷、網(wǎng)站排名、網(wǎng)站導航、響應式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名