Project

General

Profile

Bug #624

ArgumentError on "%c" % 0x80

Added by naruse (Yui NARUSE) almost 11 years ago. Updated about 8 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
ruby -v:
Backport:
[ruby-dev:36694]

Description

=begin
成瀬です。

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
'
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
=end

History

#1

Updated by naruse (Yui NARUSE) almost 11 years ago

  • Category set to M17N
  • Status changed from Open to Closed

=begin
r19737 で `%': invalid character (ArgumentError) を返すようになりました

=end

Also available in: Atom PDF