📘
[Bug #20992] マルチバイトのローカル変数が存在する時に ASCII 文字列を #eval する時とエラーになるバグ報告
[Bug #20992] eval(ascii_encoded_code)
raises EncodingError when multibyte local variable exists
- 以下のように
ASCII
コードの文字列を#eval
する時にマルチバイトのローカル変数が存在するとエラーになるというバグ報告
あ = 1
# error: invalid symbol in encoding US-ASCII :"\xE3\x81\x82" (EncodingError)
eval '1 + 2'.encode(Encoding::ASCII)
- これなんですが次のように
binding.irb
を使用するとエラーになるケースがあるみたいですね
#coding: utf-8
α=1
binding.irb
$ LANG=C ruby file.rb
From: file.rb @ line 3 :
1: #coding: utf-8
2: α=1
=> 3: binding.irb
irb(main):001> 1
<internal:kernel>:168:in 'Kernel#loop': invalid symbol in encoding US-ASCII :"\xCE\xB1" (EncodingError)
from <internal:prelude>:5:in 'Binding#irb'
from file.rb:3:in '<main>'
irb(main):002>
- このバグは Ruby 3.4.2 ですでに修正済
Discussion