在Jenkins Pipeline脚本里面,执行sh:
svn update
报错信息:
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
Updating '.':
svn: E000022: Error converting entry in directory '***' to UTF-8
svn: E000022: Can't convert string from native encoding to 'UTF-8':
svn: E000022: {U+9875}{U+9762}-1-1-{U+706F}{U+5149}.png.meta
查了一圈下来,没有能直接解决我的问题的答案,故在此记录一下。
查找【svn: E000022: Can't convert string from native encoding to 'UTF-8'】,得到的结果都是设置export LC_ALL=en_US.UTF-8,或者export LC_ALL=zh_CN.UTF-8。
添加进去,还是报上面问题。
有看到一个文档,查询本地的local信息:
locale -a
得到结果:
C
C.UTF-8
POSIX
可以看到,我这个docker容器下确实是没有en_US、zh_CN的。
改成本地有的,是不是就可以了呢?
export LC_ALL=C.UTF-8
把上面脚本插入到sh的svn update前面,脚本运行不报错,svn可以正常拉取更新。问题解决!
本文解决了一个在JenkinsPipeline中执行svn更新时遇到的错误:无法将字符串从本地编码转换为UTF-8。通过设置环境变量LC_ALL为C.UTF-8,成功解决了svn拉取更新的问题。


被折叠的 条评论
为什么被折叠?



