3
1.9.3-p194 :059 >   arabic
 => "أَبْجَدِيَّة عَ" 

1.9.3-p194 :065 > arabic.encoding
=> #<Encoding:UTF-8> 


1.9.3-p194 :068 > "begin #{arabic} end " + " Goodbye "
=> "begin أَبْجَدِيَّة عَ end  Goodbye " 

1.9.3-p194 :067 > "#{arabic} end " + " Goodbye "
=> "end  Goodbye أَبْجَدِيَّة عَ" 

最後の出力を「 أَبْجَدِيَّة عَ end Goodbye 」と読みたいと思います。

アラビア語がRTL言語であることをRubyに無視させるには、どの文字エンコーディングフープを通過する必要がありますか?


更新

次のルビーでこれを再現できました。

ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]
ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-linux]
jruby 1.7.3 (1.9.3p385) 2013-02-21 dac429b on Java HotSpot(TM) 64-Bit Server VM 1.7.0_15-b03 [linux-amd64]
jruby 1.7.4 (1.9.3p392) 2013-06-07 fffffff on Java HotSpot(TM) 64-Bit Server VM 1.7.0_15-b03 [linux-amd64]

上記のコードの要点は次のとおりです

4

2 に答える 2

1

これは修正済みのバグです。Ruby は、アラビア語が RTL 言語であることを知りません。2.0.0-p0、1.9.3-p392、またはインストールした他の Ruby のいずれにも複製できません。最新バージョンの 1.9 にアップグレードしてみてください。

于 2013-06-07T17:57:00.823 に答える