Ruby 1.9.3使用什么编码来使用backtics解析shell命令的输出?

时间:2013-10-29 08:53:04

标签: ruby unicode encoding

执行时

lines = `gpg --list-keys --with-colons horst`

字符串lines有什么编码?我如何改变Ruby解释它的方式?

背景: 我在一些gpg键中有一些变音符号,并且在尝试按换行分割时出现此错误:

invalid byte sequence in UTF-8

我目前的解决方法是:

lines.force_encoding('ISO-8859-1')

但是,我不明白为什么这应该是ISO-8859-1,因为我的语言环境是en_US.UTF-8 ..

1 个答案:

答案 0 :(得分:0)

我不确定您是否还需要这个答案,但看起来您必须在gpg命令中使用--display-charset–charset选项为了设置本机字符集的名称。这用于将某些字符串转换为正确的UTF-8编码。在您完成此操作后,您不必在下游强制执行编码。

检查服务器上的gpg手册页,了解您可以使用哪个选项。