【问题标题】:Calling Bash Commands From Ruby with russian symbols return 1使用俄语符号从 Ruby 调用 Bash 命令返回 1
【发布时间】:2015-04-01 00:19:18
【问题描述】:

调用 bash 命令

cmd = '/usr/bin/mediainfo "/var/avalon/dropbox/Лекции_для_молодых_ученых/Nabiullin_SciERes_1.flv" --Output=XML'    
out = `#{cmd}`

在 Rails 项目中 'avalom media system' 返回 错误代码 1.

从路径cmd = '/usr/bin/mediainfo "/var/avalon/dropbox/Nabiullin_SciERes_1.flv" --Output=XML' 中删除俄语字母,调用另一个命令 cmd = 'head "/var/avalon/dropbox/Лекции_для_молодых_ученых/Nabiullin_SciERes_1.flv"' 或在 irb 或项目环境或 bash 中运行命令 - 一切都很好。

谢谢。

当我尝试在 gem 媒体信息 file:473file:543 => 中使用俄语字母将媒体文件添加到集合时出错

控制台编码 - utf-8。命令字符串编码 - utf-8。

【问题讨论】:

  • 你有什么问题?
  • 如何运行这个命令?
  • 我描述了这个问题。很明显,我想解决它。问题是如何做到这一点,这个问题的原因是什么?
  • 直接从bash提示符调用命令执行成功了吗?
  • 是的。 或在 irb 或项目环境或 bash 中运行命令 - 一切都很好。

标签: ruby-on-rails ruby bash mediainfo


【解决方案1】:

这个问题的原因是avalon的ENV["LANG"]是C。 将 ENV["LANG"] 设置为 en_US.utf-8 即可解决此问题。

【讨论】:

    猜你喜欢
    • 2013-10-12
    • 2011-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多