Puma和JRuby的编码问题



当我将puma添加到Gemfile时,我现在每次运行rails生成器或rails服务器时都会收到此错误:

语法错误: /Users/admin/.rvm/gems/jruby-1.7.19@benchmark_jruby_puma/gems/puma-3.1.0-java/lib/puma/const.rb:103: 无效的多字节字符 (US-ASCII)

没有puma一切正常。如何解决这个问题?

该行包含非 ASCII 字符,但该文件不包含编码标头。JRuby 1.7 的默认设置是将源视为 ASCII 编码,因此结果是您看到的错误。后来的 Ruby 版本默认为 UTF-8。

不过,1.7 仍然支持旧的 -K 命令行选项,因此您可以使用它来设置源编码。您将需要u选项(即 -Ku )。您可能需要使用 RUBYOPT 环境变量才能将其与 Rails 一起使用。

您可以通过以环境变量

开头为每个命令单独指定环境变量,例如:

$ RUBYOPT=-Ku rails server

或者您可以导出它,这样您就不需要不断重新键入它:

$ export RUBYOPT=-Ku
$ rails server

最新更新