# -*- coding: UTF-8 -*-
require 'abbrev'
puts RUBY_VERSION
result = Abbrev.abbrev(%w{あした あなた})
puts result, result.count
"あした" means "tomorrow", and "あなた" means "you". So let's run this script on Ruby 1.9(Linux), JRuby(Linux) and IronRuby(Windows).
Ruby 1.9(Linux)
> /opt/ruby-1.9.1/bin/ruby abbrev_sample.rb 1.9.2 {"あし"=>"あした", "あな"=>"あなた", "あした"=>"あした", "あなた"=>"あなた"} 4
JRuby(Linux)
> jruby abbrev_sample.rb 1.8.7 あし��あしたあし�あしたあしあしたあな��あなたあな�あなたあなあなたあしたあしたあなたあなた 8 > jruby --1.9 abbrev_sample.rb 1.9.2dev {"\xE3\x81\x82\xE3\x81\x97\xE3\x81"=>"\xE3\x81\x82\xE3\x81\x97\xE3\x81\x9F", "\xE3\x81\x82\xE3\x81\x97\xE3"=>"\xE3\x81\x82\xE3\x81\x97\xE3\x81\x9F", "\xE3\x81\x82\xE3\x81\x97"=>"\xE3\x81\x82\xE3\x81\x97\xE3\x81\x9F", "\xE3\x81\x82\xE3\x81\xAA\xE3\x81"=>"\xE3\x81\x82\xE3\x81\xAA\xE3\x81\x9F", "\xE3\x81\x82\xE3\x81\xAA\xE3"=>"\xE3\x81\x82\xE3\x81\xAA\xE3\x81\x9F", "\xE3\x81\x82\xE3\x81\xAA"=>"\xE3\x81\x82\xE3\x81\xAA\xE3\x81\x9F", "\xE3\x81\x82\xE3\x81\x97\xE3\x81\x9F"=>"\xE3\x81\x82\xE3\x81\x97\xE3\x81\x9F", "\xE3\x81\x82\xE3\x81\xAA\xE3\x81\x9F"=>"\xE3\x81\x82\xE3\x81\xAA\xE3\x81\x9F"} 8
IronRuby(Windows)
> "C:\Program Files\IronRuby 1.1\bin\ir.exe" abbrev_sample.rb 1.9.2 {"\u{3042}\u{3057}"=>"\u{3042}\u{3057}\u{305f}", "\u{3042}\u{3057}\u{305f}"=>"\u{3042}\u{3057}\u{305f}", "\u{3042}\u{306a}"=>"\u{3042}\u{306a}\u{305f}", "\u{3042}\u{306a}\u{305f}"=>"\u{3042}\u{306a}\u{305f}"} puts result, result.count{"\u{3042}\u{3057}"=>"\u{3042}\u{3057}\u{305f}", "\u{3042}\u{3057}\u{305f}"=>"\u{3042}\u{3057}\u{305f}", "\u{3042}\u{306a}"=>"\u{3042}\u{306a}\u{305f}", "\u{3042}\u{306a}\u{305f}"=>"\u{3042}\u{306a}\u{305f}"} 4
Both CRuby and IronRuby deal Multibyte characters as Multibyte characters. But JRuby(either 1.8 mode or 1.9 mode) deals with Multibyte characters as Unicode each bytes.
No comments:
Post a Comment