无法解决 Jenkins 中不兼容的字符编码
Can't resolve incompatible character encoding in Jenkins
我正在尝试 运行 来自 Jenkins 的 Cucumber (Ruby 2.3) 测试套件,用于测试 2-4 字节的 UTF-8 字符是否是组的有效名称。
我已经尝试了多种解决方案,并且已经搜索了好几天,试图找到与我相关的问题。
一直困扰我的错误是:
incompatible character encodings: ASCII-8BIT and UTF-8 (Encoding::CompatibilityError)
这是指我试图向我正在创建组的计算机上的 CLI 发送 ssh 命令的行:
$mymachine.cli_ssh.exec!("config group create --name='#{group_name}'")
exec!()
命令中存在的位置:
command.force_encoding("UTF-8")
错误仅在我发送 2-4 字节的 UTF-8 字符时发生,例如:
组'abcd' 不会导致错误
和
组“ЯЯЯ”确实导致错误
问题:
运行 这个脚本在我的本地 Ubuntu 机器(Ruby 2.2.1)以及我所在地区的其他机器上工作得很好。 (这就是为什么我认为没有必要提供比给定更多的代码)。我知道随着跳转到 Ruby 2.0,UTF-8 的编码发生了变化,但两台机器都超过了这一点,所以我认为这不是问题所在。
我已经尝试在 Jenkins 机器上将系统语言环境设置为 en_US.UTF-8 作为语言环境系统变量并在 /.bashrc 文件中。没有我在哪里看到设置为 ASCII-8BIT 的编码变量。
我还尝试在脚本执行之前从 Jenkins shell 导出系统语言环境。
我需要一些答案,或者一些可以帮助我解决这个问题的方向。
问题已通过更新 Jenkins 系统上的所有 Ruby gem 得到解决。某些 gem 可能已经过时,即使它们在技术上与 Ruby 的版本兼容,Jenkins 机器是 运行ning,因此,可能存在 Ruby 非 UTF8 代码。
如果您以后 运行 遇到这个问题,我建议确保所有 gem 和 ruby 版本在您的 Jenkins 机器和工作机器之间保持一致。
我正在尝试 运行 来自 Jenkins 的 Cucumber (Ruby 2.3) 测试套件,用于测试 2-4 字节的 UTF-8 字符是否是组的有效名称。
我已经尝试了多种解决方案,并且已经搜索了好几天,试图找到与我相关的问题。
一直困扰我的错误是:
incompatible character encodings: ASCII-8BIT and UTF-8 (Encoding::CompatibilityError)
这是指我试图向我正在创建组的计算机上的 CLI 发送 ssh 命令的行:
$mymachine.cli_ssh.exec!("config group create --name='#{group_name}'")
exec!()
命令中存在的位置:
command.force_encoding("UTF-8")
错误仅在我发送 2-4 字节的 UTF-8 字符时发生,例如:
组'abcd' 不会导致错误 和 组“ЯЯЯ”确实导致错误
问题:
运行 这个脚本在我的本地 Ubuntu 机器(Ruby 2.2.1)以及我所在地区的其他机器上工作得很好。 (这就是为什么我认为没有必要提供比给定更多的代码)。我知道随着跳转到 Ruby 2.0,UTF-8 的编码发生了变化,但两台机器都超过了这一点,所以我认为这不是问题所在。
我已经尝试在 Jenkins 机器上将系统语言环境设置为 en_US.UTF-8 作为语言环境系统变量并在 /.bashrc 文件中。没有我在哪里看到设置为 ASCII-8BIT 的编码变量。
我还尝试在脚本执行之前从 Jenkins shell 导出系统语言环境。
我需要一些答案,或者一些可以帮助我解决这个问题的方向。
问题已通过更新 Jenkins 系统上的所有 Ruby gem 得到解决。某些 gem 可能已经过时,即使它们在技术上与 Ruby 的版本兼容,Jenkins 机器是 运行ning,因此,可能存在 Ruby 非 UTF8 代码。
如果您以后 运行 遇到这个问题,我建议确保所有 gem 和 ruby 版本在您的 Jenkins 机器和工作机器之间保持一致。