jenkins部署完成后,出现编码格式导致的乱码问题。具体表现有:
- 控制台的错误提醒显示为乱码
- 识别utf-8格式的共享库代码,展示参数信息乱码
考虑使用过程中涉及到Linux服务器,tomcat,jenkins,以及外置脚本,在此一一整理其中的编码设置并记录,供后续参考。
linux系统编码格式
通过命令查看系统版本,得到系统版本为Redhat
# lsb_release -a
查看操作系统编码:
# echo $LANG
zh_CN.GB18030
按照需求需要修改为utf-8,读取i18n文件:
vi /etc/sysconfig/i18n
发现默认值LANG=”zh_CH.GB18030”,修改为 LANG=”zh_CH.UTF-8”,然后重启服务器
如果暂时不便重启服务器,可以通过一下命令修改编码,立即生效。但当前session切断后,设定失效。重启后恢复为i18n中设定的内容。
export LANG=zh_CN.UTF-8
修改tomcat的编码格式
在tomcat的安装目录中,找到conf/server.xml,找到以下段落:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
修改为:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8"/>
其中,URIEncoding指定tomcat的编码格式。
jenkins修改
jenkins系统设置修改
点击左侧“系统管理”——右侧选择“系统设置”——“全局属性”,选择第一项:Environment variables,键值对列表,点击增加:
键:LANG
值:zh.CH.UTF-8
查看修改后结果
点击左侧“系统管理”——右侧选择“系统属性”,查看列表中的file.encoding,已经修改为UTF-8。重新尝试执行job,读取共享库脚本的中文描述,以及日志打印均正常。