执行时
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
..
答案 0 :(得分:0)
我不确定您是否还需要这个答案,但看起来您必须在gpg命令中使用--display-charset
或–charset
选项为了设置本机字符集的名称。这用于将某些字符串转换为正确的UTF-8编码。在您完成此操作后,您不必在下游强制执行编码。
检查服务器上的gpg手册页,了解您可以使用哪个选项。