関数的メソッド p が利用する String#inspect は、本当はニホンゴ文字として表示したがっているのだ
ユーザーの環境でニホンゴ文字が利用可能かの判断は、$KCODE の設定の有無を見てる
$KCODE が "NONE" であるなら、文字列を \123 等のバイト列表示に変換して標準出力に流す

てことで、適宜 $stderr.puts str.tosjis とかするか、$KCODE="s" した上で p str するかしれ
個人的には p でニホンゴ文字が表示されてしまうのは好きではない

設定の有無だけじゃなくて内容も見て自動で変換とかやって欲しくね、というのをやってるのが Ruby1.9.x