使用俄语符号从Ruby调用Bash命令返回1

时间:2015-02-02 04:37:52

标签: ruby-on-rails ruby bash mediainfo

调用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中运行命令        - 一切都很好。

THX。

尝试将媒体文件添加到file:543 =>中的俄语字母集合时出错在宝石媒体信息file:473

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

1 个答案:

答案 0 :(得分:0)

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