2012-12-12 40 views
10

在我們的JRuby/Rails項目中,我們使用的是i18n gem,並支持日文和英文。我們的config/locales.ja.yml文件採用UTF-8,沒有任何BOM。JRuby 1.7.1和PsychParser錯誤解析UTF-8 YAML文件(Rails 3.2.8)

當運行JRuby 1.7.1Rails 3.2.9,我們現在看到了以下錯誤:

% 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 
    ... 

此錯誤YAML解析ja.yml文件現在發生在了我們的Windows XP和Linux開發環境和似乎只走的時候,我們明確地設置了JVM以下系統參數:

-Dfile.encoding=utf-8 

誰能告訴我爲什麼這發生在JRuby 1.7.1
我沒有看到這在1.6.81.7.0

+0

面對同樣的事情與Jruby1.7,在Windows下的Rails 3.2.13,但沒有錯誤或異常,只是garpish文本,而不是阿拉伯文..運行'SET JAVA_TOOL_OPT IONS =「-Dfile.encoding = UTF8」'也適用於我 – Nimir

+0

容易成爲bug http://jira.codehaus.org/browse/JRUBY-7142;自1.7.5以來固定 – ted

+0

@ted「自1.7.5以來固定」?它仍然顯示迄今爲止的最新版本是1.7.4 ... – buruzaemon

回答