【问题标题】:invalid byte sequence in UTF-8 (ArgumentError) with ocra使用 ocra 的 UTF-8 中的无效字节序列(ArgumentError)
【发布时间】:2022-10-05 01:32:56
【问题描述】:

我尝试使用 ocra gem 将示例 ruby​​ 脚本转换为可执行文件。这是我的 ruby​​ 脚本。

puts "Hello word"

运行ocra test.rb 时出现以下错误

C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/ocra-1.3.11/bin/ocra:34:in `tr': invalid byte sequence in UTF-8 (ArgumentError)
        from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/ocra-1.3.11/bin/ocra:34:in `to_posix'
        from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/ocra-1.3.11/bin/ocra:57:in `subpath?'
        from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/ocra-1.3.11/bin/ocra:611:in `block (2 levels) in find_gem_files'
        from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/ocra-1.3.11/bin/ocra:609:in `each'
        from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/ocra-1.3.11/bin/ocra:609:in `block in find_gem_files'
        from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/ocra-1.3.11/bin/ocra:597:in `each'
        from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/ocra-1.3.11/bin/ocra:597:in `find_gem_files'
        from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/ocra-1.3.11/bin/ocra:755:in `build_exe'
        from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/ocra-1.3.11/bin/ocra:1231:in `block in <top (required)>'

我的红宝石版本

ruby -v
ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x64-mingw-ucrt]

有没有将 ruby​​ 脚本转换为可执行文件的好方法?

【问题讨论】:

  • Ruby 脚本的文件路径中可能有一个撇号。尝试将所有 Ruby 相关文件放入不包含任何 UTF-8 字符的文件路径中。这是我的猜测。只是一个猜测,但看看调用堆栈,这可能就是问题所在。
  • 我试图将我的 ruby​​ 文件放入不包含 UTF-8 字符的文件路径中,但不幸的是问题仍然存在。
  • 如果没有可重现的示例,很难猜测问题可能是什么。我会尝试提交错误报告,因为它看起来可能是一个错误。 github.com/larsch/ocra/issues
  • 我在 ocra github 上报告了这个问题,但我似乎被开发人员抛弃了,答案和响应是由用户彼此做出的。如果我解决了这个问题,我会在这里提出正确的解决方法。感谢您的帮助。

标签: ruby script ocra


【解决方案1】:

问题是我在 Windows 计算机上使用此字符 è 的用户名。就像提到的那样,ocra 必须尊重 Casper UFT-8。我按照此链接解决了我的问题,然后重新启动了 ocra 并解决了问题。

Change user name on windows 10

【讨论】:

    猜你喜欢
    • 2015-07-04
    • 2016-07-05
    • 2013-08-20
    • 1970-01-01
    • 2012-06-19
    • 2017-03-31
    • 2012-12-11
    • 2023-04-03
    • 1970-01-01
    相关资源
    最近更新 更多