首先只要遇到提示GBK、UTF-8或亂碼顯示字樣等,這些肯定是編碼問題。為了解決問題還特意了解了下UTF-8 與GBK之間的區別和關系 。修改file.encoding系統變量編碼為UTF-8
問題情景:
python腳本已經調通過的自動化項目,部署到Jenkins上后,使用jenkins構建,控制臺print輸出報錯,如下圖:
控制臺輸出:
分析問題:
我們知道,windows的控制臺默認編碼就是'GBK',而我們代碼編碼格式是utf-8,因為Jenkins會默認讀取當前系統的編碼格式,這樣就會導致Jenkins構建時中文亂碼或報GBK轉碼問題,如上圖的報錯問題:'\u20ac'實際就是特殊字符'€'的轉碼格式。所以一切都是windows的控制臺默認編碼GBK問題。哪么我們知道,只要統一他的讀寫格式,省去Jenkins與python中間轉碼哪就能解決這個問題。
搜索解決辦法:
果斷百度一下,按照設置全局配置那里設置LANG :zn_CH.utf-8 ,結果無效。
?
查看了一下,系統管理--->系統信息--->系統屬性的第三行可以看到系統編碼格式為GBK。
注解:
file.encoding主要管理的是文件中的編碼?
sun.jnu.encoding 主要負責文件名類的編碼
網上查了下,大部分是說這個是java層面的編碼問題,所以在jenkins 里設置半天并沒效果下。所以查了下file.encoding、sun.jnu.encoding?的GBK編碼修改成UTF-8的方法,如下:
在操作系統變量里添加啟動參數:?
1.打開環境變量設置?
2.注意是新建,不是在什么path中新加,?
直接新建一個變量名為JAVA_TOOL_OPTIONS?
變量值為 -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8
保存后并重啟Jenkins(重啟命令:restart)
查看Jenkins系統屬性果真修改成功了。但是新問題又來了,我重新構建了下我的項目發現仍然報錯,而且還出現了中文亂碼。
最終解決辦法:
后面我想了下,網上大部分是說這個是java層面的編碼問題,哪可能是他們的自動化項目本來就是Java所寫呀,所以我以上操作只能針對Java項目的編碼。對于?python自動化測試項目在jenkins 里構建并沒有效果。同理,我們添加一個Python變量就可以了。
在操作系統變量里添加啟動參數:?
1.打開環境變量設置?
2.注意是新建,不是在什么path中新加,?
直接新建一個變量名為PYTHONIOENCODING
變量值為 UTF8
好了,重啟Jenkins就可以啦,快構建試試吧
注意:PYTHONIOENCODING這個變量是最主要的
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
