なかだです。

At Thu, 4 Oct 2001 10:02:28 +0900,
tomkob / excite.co.jp wrote:
> Kconv::tosjis では、EUCの半角カナをうまく変換しないの
> でしょうか?

 kconv.rbでは、NKF::nkf('-s', str)とSJISに変換することだけを指
定していて、元の文字コードについては自動判別に任せています。と
ころが、EUC-JPに半角カナが混じっているとSJISと区別することが原
理的にできません。半角カナ混じりのEUC-JPをSJISに変換したいなら、

  Kconv.kconv(str, Kconv::SJIS, Kconv::EUC)

のように元の文字コードも明示するか、EUC-JP -> SJIS用のメソッド
を用意しておくとよいと思います。以下の例では半角カナを全角カナ
に変換しないようにしています。

module Kconv
  def euctosjis(str)
    NKF.nkf("-Esx", str)
  end
  module_function :euctosjis
end

class String
  def euctosjis
    NKF.nkf("-Esx", self)
  end
end

# m17n版が完成すれば、eucstr.tosjisでできるようになるかも知れ
# ません。

-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦