NKFを使えばできる。
UTF-8には対応していないのかなぁなどと勝手に思っていたら、そんなことはなかったです。
標準添付ライブラリ紹介 【第 3 回】 Kconv/NKF/Iconv
ここに細かいオプションが書いてあります。
UTF-8で入力する場合には ‘-W’
UTF-8で出力する場合には ‘-w’
半角カタカナを全角にするには ‘-X’(デフォルトらしいのでつけなくても変換されるようですが)
MIME encodeをしないので ‘-m0’
ということで、たとえばこんな感じになります。
#!/usr/bin/ruby -Ku require 'nkf' p NKF::nkf('-WwX -m0', 'テストだよ。')