java文件编码格式环境变量_Jenkins maven 构建乱码,修改file.encoding系统变量编码为UTF-8...
一切都是windows的控制臺(tái)默認(rèn)編碼GBK問題
情景:
使用jenkins構(gòu)建,console 輸出的中文亂碼。代碼編碼格式是utf-8,因?yàn)镴enkins會(huì)默認(rèn)讀取當(dāng)前系統(tǒng)的編碼格式,導(dǎo)致構(gòu)建日志亂碼和selenium自動(dòng)化測(cè)試輸入的中文亂碼。
控制臺(tái)輸出亂碼
摸索
不能忍,果斷百度一下,按照設(shè)置全局配置那里設(shè)置LANG :zn_CH.utf-8 無效。
在jenkins下的jenkins.xml設(shè)置什么啟動(dòng)為utf-8也是無效。
但是查找資料期間發(fā)現(xiàn),jenkins系統(tǒng)管理的系統(tǒng)信息
想到另一臺(tái)linux下,未發(fā)現(xiàn)該問題,上去看看,里面有一個(gè)(大約是第三行)file.encoding UTF-8,而我本地的windows則是file.encoding GBK.
再往下拉,仔細(xì)看還有一個(gè)sun.jnu.encoding UTF-8
而我本地也是sun.jnu.encoding GBK
我覺得就是這里的問題啊。
這個(gè)是java層面的編碼問題,所以在jenkins 里設(shè)置半天并沒效果。
查了下java修改file.enciding UTF-8的方法。
在系統(tǒng)變量里添加啟動(dòng)參數(shù):
1.打開環(huán)境變量設(shè)置
2.注意是新建,不是在什么path中新加,
直接新建一個(gè)變量名為JAVA_TOOL_OPTIONS
變量值為-Dfile.encoding=UTF-8
保存并重啟jenkins。
再次查看我們的“系統(tǒng)管理”-->“系統(tǒng)信息”發(fā)現(xiàn)已經(jīng)是UTF-8 了。
等等,你可能說,那個(gè)sun.jnu.encoding還沒改呢。
那這倆有什么區(qū)別呢
file.encoding主要管理的是文件中的編碼
sun.jnu.encoding 主要負(fù)責(zé)文件名類的編碼
PS:所以這里也提示我們,如果依賴java或者其他一些環(huán)境的軟件,命名及其安裝路徑盡量國(guó)際化一點(diǎn),畢竟中文很多時(shí)候出現(xiàn)錯(cuò)誤十分的惱火。
sun.jnu.encoding 的修改還沒找到方法,如知道,請(qǐng)告知我。
重新構(gòu)建一下,一半喜樂,一半憂傷。我程序中輸出的中文字符正常顯示了。但是,系統(tǒng)提示的那個(gè)“錯(cuò)誤,該進(jìn)程沒有找到”的已經(jīng)變成了亂碼。WTF,其實(shí)不難理解,因?yàn)槟莻€(gè)信息是windows反饋給我們的,不在我們代碼中,那編碼模式必然是默認(rèn)的GBK,這里實(shí)在是不知道怎么去控制了。尷尬,難道就不能兩全嗎?!
搞不動(dòng)了,linux下就沒這么妖了,因?yàn)槟J(rèn)的就都是utf-8。
參考:http://blog.csdn.net/sinat_21302587/article/details/68061204
總結(jié)
以上是生活随笔為你收集整理的java文件编码格式环境变量_Jenkins maven 构建乱码,修改file.encoding系统变量编码为UTF-8...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 买回来的榴莲可以放冰箱保存吗?
- 下一篇: 只有冷藏功能的冰箱冬天能冰饺子,汤圆吗?