为什么YAML.load返回错误的数值?

nol*_*oli 3 ruby yaml ruby-1.9 ruby-1.9.2

为什么YAML.load返回错误的值?

ruby-1.9.2-p0 :006 > a = YAML.load('merchant_id: 014213245611111')
 => {"merchant_id"=>843333440073} 
ruby-1.9.2-p0 :007 > a["merchant_id"]
 => 843333440073 
Run Code Online (Sandbox Code Playgroud)

我在ruby 1.9.2-p0,rvm,ubuntu10.10,64bit.

Dan*_*ail 7

YAML解析器将"014213245611111"视为八进制(base-8)编号,而不是字符串.用引号括起来保留前导0.