我试图调用的命令行工具基本上将文件转换为另一种格式。
我正在使用这个[教程] [1],但遇到了麻烦。我一直在invalid multibyte char (UTF-8) (SyntaxError)
我只是将我的命令行工具(使用C制作)转储到垃圾箱中,并试图让它工作。有人可以说明我如何才能实现这项工作吗?
答案 0 :(得分:3)
你得到的错误与UTF-8编码有关,这是ruby-2.x中的默认编码所以我假设你使用的是1.8或1.9,你应该考虑升级。
尝试将以下行添加到脚本的顶部:
#!/bin/env ruby
# encoding: utf-8
请告知我们是否有效并查看this thread for more。
编辑:现在我明白了你想做什么。查看位于bin/
目录的示例文件here。您可以将可执行文件放到另一个目录,例如data/
,并通过ruby调用:
#!/usr/bin/env ruby
prog = File.expand_path('../data/myprog', __FILE__)
ARGV.each do|a|
system("#{prog} #{a}") # will return 'true' if run successfully
end
好的,现在试试。这也适用于多个文件,例如
prog file1.doc file2.doc ...
答案 1 :(得分:1)
请阅读the document和the document,了解如何使 C 软件兼容 ruby 。
一些注意事项:
extconf
兼容;