JRuby 1.7.1和PsychParser错误解析UTF-8 YAML文件(Rails 3.2.8)

bur*_*mon 10 yaml jruby jrubyonrails psychparser

在我们的JRuby/Rails项目中,我们使用i18ngem,并支持日语和英语.我们的config/locales.ja.yml文件是UTF-8,没有任何BOM.

运行Rails 3.2.9JRuby 1.7.1,我们现在看到以下错误:

% jruby -S rake spec:models

 Psych::SyntaxError: (C:/Projects/foobar/trunk/config/locales/ja.yml): 
   expected <block end>, but found Scalar while parsing a block 
   mapping at line 7 column 33

   parse at org/jruby/ext/psych/PsychParser.java:213
   ... 
Run Code Online (Sandbox Code Playgroud)

解析ja.yml文件的YAML的这个错误现在在我们的Windows XP和Linux开发环境中发生,并且当我们为JVM显式设置以下系统参数时,似乎只会消失:

-Dfile.encoding=utf-8
Run Code Online (Sandbox Code Playgroud)

谁能告诉我为什么会这样JRuby 1.7.1
我没有看到这个1.6.81.7.0.

dig*_*ist 0

已经一年多了,但答案如下:

http://jruby.org/2012/12/03/jruby-1-7-1.html

在该版本中,发生了这种情况:

  • Psych YAML 引擎更新至最新