From: "NARUSE, Yui" Date: 2008-10-09T19:57:17+09:00 Subject: [ruby-dev:36694] Re: [Bug:1.9] ArgumentError on "%c" % 0x80 成瀬です。 Tanaka Akira wrote: > In article <874p3mqm1s.fsf@fsij.org>, > Tanaka Akira 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 `
' > 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