场景:产品将版本发布说明发给配置管理员(我自己),我使用jenkins建的任务自动传这个版本发布说明文件(release_note.txt)到ftp以后,打开文件后发现乱码。
调试: 但是将文件另存为utf-8格式再传上去,就不会乱码。
解决:需要将文件自动转化成utf-8在传,可以使用iconv来转换,由于我的系统上安装了gitbash, 我发现这个命令在gitbash中默认是存在的,这就很好了,直接bat调用一条shell命令即可(因为我的上传动作是在windows机器上做的,如果windows 要使用iconv,需要装iconv.exe,还要下载,麻烦,所以我用了gitbash里自带的iconv)
shell命令如下:
iconv -f utf-8 -t utf-8 release_note.txt > release_note_bak.txt
bat 中调用shell命令可以如下:
"C:Program Files (x86)Gitinsh.exe" --login -i -c "iconv -f utf-8 -t utf-8 release_note.txt > release_note_bak.txt"
这个release_note_bak.txt就是utf-8的格式,传到ftp上不会乱码。