From: 山崎雄介 <y-yamasaki / saeilo.co.jp>
Subject: [ruby-list:45263] Re: nkf -j problem?
Date: Fri, 25 Jul 2008 11:45:54 +0900

> 環境によって同じ文字なのに推測に失敗するほうが問題な気がしますが、
> それはともかく、こちらの環境では変換できてるようです。

環境ではなく、入力文字コードが異なるからです。
GNU/LinuxでもShift_JIS→JISの推測変換はできます。

require 'kconv'

RUBY_VERSION         # => "1.8.6"
RUBY_PATCHLEVEL      # => 114
euc  = "鬱"
sjis = NKF.nkf("-Es", "鬱")
# EUC-JP→JIS
NKF.nkf("-j", euc)   # => ""
# Shift_JIS→JIS
NKF.nkf("-j", sjis)  # => "\e$B]5\e(B"


Ruby 1.9だと変換できていますね。

require 'kconv'

RUBY_VERSION         # => "1.9.0"
RUBY_PATCHLEVEL      # => 0
euc  = "鬱"
sjis = NKF.nkf("-Es", "鬱")
# EUC-JP→JIS
NKF.nkf("-j", euc)   # => "\e$B]5\e(B"
# Shift_JIS→JIS
NKF.nkf("-j", sjis)  # => "\e$B]5\e(B"

--
rubikitch
Blog: http://d.hatena.ne.jp/rubikitch/
Site: http://www.rubyist.net/~rubikitch/