成瀬です。

Tanaka Akira wrote:
> In article <874p3mqm1s.fsf / fsij.org>,
>   Tanaka Akira <akr / fsij.org> writes:
> 
>> "%c" % 0x80 が例外になります。
> 
> うぅむ。ロケールに依存しているようですね。
> 
> EUC-JP ではおきます。
> 
> % LANG=ja_JP.EUC-JP ./ruby -ve '"%c" % 0x80'
> ruby 1.9.0 (2008-10-09 revision 19725) [i686-linux]
> -e:1: warning: useless use of % in void context
> -e:1:in `%': negative string size (or size too big) (ArgumentError)
>         from -e:1:in `<main>'
> zsh: exit 1     LANG=ja_JP.EUC-JP ./ruby -ve '"%c" % 0x80'
> 
> UTF-8 ではおきません。
> 
> % LANG=ja_JP.UTF-8 ./ruby -ve '"%c" % 0x80'
> ruby 1.9.0 (2008-10-09 revision 19725) [i686-linux]
> -e:1: warning: useless use of % in void context
> 
> 7bit な文字列のエンコーディングを US-ASCII にしなくなったこ
> との影響ともいえるかなぁ。

printf("%c", codepoint) という解釈になりますので、
EUC-JP で例外というのは妥当な動作だと思います。

例外の内容が誤っている気はしますね。

-- 
NARUSE, Yui  <naruse / airemix.jp>