首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jenkins中不兼容的字符编码无法解析

Jenkins中不兼容的字符编码无法解析
EN

Unix & Linux用户
提问于 2017-07-10 17:24:09
回答 1查看 603关注 0票数 0

我试图从Jenkins运行一个Cucumber (Ruby)测试套件,测试2-4字节UTF-8字符是否是组的有效名称。

我尝试了一些解决办法,并一直在寻找几天来试图找到一个与我有关的问题。

一直困扰我的错误是:

代码语言:javascript
复制
incompatible character encodings: ASCII-8BIT and UTF-8 (Encoding::CompatibilityError)

它指的是我试图在FreeBSD机器上向CLI发送ssh命令的行,我要在其中创建组:

代码语言:javascript
复制
$mymachine.cli_ssh.exec!("config group create --name='#{group_name}'")

exec!()命令中存在的地方:

代码语言:javascript
复制
command.force_encoding("UTF-8")

只有当我发送2-4字节UTF-8字符时,才会发生错误,这样:

组'abcd‘不会导致错误,而组'ЯЯЯ’会导致错误。

问题:

在我的本地Ubuntu机器上运行这个脚本非常好,以及我所在地区的其他机器。(这就是为什么我认为没有必要提供比给定的代码更多的代码)。

我已经尝试过将Jenkins机器上的系统区域设置为en_US.UTF-8,既作为locale系统变量,也在/.bashrc文件中。没有,我在哪里看到一个编码变量设置为ASCI-8位。

我还尝试在脚本执行之前从Jenkins shell导出系统区域设置。

我需要一些答案,或一些能帮助我解决这个问题的方向。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2018-07-09 16:30:09

通过更新Jenkins系统上的所有Ruby宝石解决了这个问题。很可能某些宝石已经过时,尽管它们在技术上与正在运行的Jenkins机器Ruby版本兼容,因此,可能存在非UTF8 8的Ruby代码。

如果您将来遇到这个问题,我建议您确保所有的gem和ruby版本在Jenkins机器和工作机器之间是一致的。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/377524

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档