今天做項目的時候遇到一個很頭疼的問題——無論在Java代碼中如何統(tǒng)一編碼為UTF8,在IDE中運行是完全沒問題的,,但打包成Jar通過Bash和CMD運行,,都會出現(xiàn)中文亂碼問題。起初是覺得Java編譯時編碼出現(xiàn)了問題,,但經(jīng)過幾小時的排查,,終于找到中文亂碼問題的根源——cmd/bash默認(rèn)的編碼是GBK。為了防止日后再踩坑,,本文記錄問題的解決方案,。
一、設(shè)定cmd的編碼為utf-8
打開cmd,,輸入以下命令
chcp 65001
這樣既可以更改cmd的編碼為UTF-8了,。
以下是常用的cmd編碼
字符編碼
|
對應(yīng)字符
|
GBK(默認(rèn))
|
936
|
美國英語
|
437
|
utf-8
|
65001
|
二、規(guī)定執(zhí)行java時的編碼方式
在cmd下,,常見運行Jar包的命令如下
java -jar project.jar
但這樣可能會使得java運行時編碼不正確導(dǎo)致的報錯,,這時候我們可以將運行Jar時,指定編碼參數(shù)
java -Dfile.encoding=utf-8 -jar project.jar
三,、將以上命令打包成bat
每次啟動項目都要進(jìn)行如上兩步的話,,其實會非常麻煩,我們可以將以上兩部打包成bat批處理文件,,具體步驟如下
3.1 在Jar的目錄下創(chuàng)建一個txt文件,,通過記事本打開
3.2 將以上命令寫入txt文件中,保存
3.3 修改msgSystemStart.txt為msgSystemStart.bat
3.4 運行bat文件
可以看到,,項目正常啟動,,并且不會出現(xiàn)亂碼問題;
通過以上步驟,,基本上可以將中文亂碼問題解決,。
|