cp932 でないと xmp が動かない

以下の簡単なコードを xmp してみると、

#! /usr/local/bin/ruby19
# -*- coding: cp932; -*-
RUBY_VERSION                    # => "1.9.1"
"foo"                           # => "foo"
"foo".encoding                  # => #<Encoding:Windows-31J>
"こんにちは"                    # => "こんにちは"

もちろん、ちゃんと動く。

ところが、これを utf-8 に変更すると、

#! /usr/local/bin/ruby19
# -*- coding: utf-8; -*-
RUBY_VERSION                    # => 
"foo"                           # => 
"foo".encoding                  # => 
"こんにちは"                    # => 
# ~> -e:1:in `load': -:6: invalid multibyte char (UTF-8) (SyntaxError)
# ~> -:6: invalid multibyte char (UTF-8)
# ~> -:6: syntax error, unexpected $end, expecting ')'
# ~> ...mp_1238142583_804_632183 = ("こんにちは"                   )...
# ~> ...                               ^
# ~> 	from -e:1:in `<main>'

SyntaxError になる。

マルチバイト文字を消すと、

#! /usr/local/bin/ruby19
# -*- coding: utf-8; -*-
RUBY_VERSION                    # => "1.9.1"
"foo"                           # => "foo"
"foo".encoding                  # => #<Encoding:UTF-8>

ちゃんと動く。

環境は、

bashコマンドラインからだと動いたりするので、もう何がなんだか?