Project

General

Profile

Actions

Bug #12841

closed

Kernel#exec(cmdname, arg1, ...) passes arg1 that is encoded strangely on Japanese Windows

Added by dogatana (Toshihiko Ichida) over 7 years ago. Updated over 7 years ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.3.0p0 (2015-12-25 revision 53290) [i386-mingw32]
[ruby-dev:49838]

Description

Kernel#exec(cmdname, arg1, ...) 形式でプログラムを呼び出す際、argが日本語を含んでいると
化けた文字列が渡されます。
同じ内容を Kernel#excec(cmdline) 形式で呼び出すと問題は発生しません。

直接呼び出す場合は問題なし

          
> ruby test.rb あ                                    
arg: あ, enc: Windows-31J, bytes: 82-a0             

cmdline だと問題なし

> irb                                               
irb(main):001:0> Kernel.exec 'ruby test.rb あ'       
arg: あ, enc: Windows-31J, bytes: 82-a0             

cmdname, arg1 だとarg1が文字化けしている。

> irb                                               
irb(main):001:0> Kernel.exec 'ruby', 'test.rb', 'あ' 
arg: 縺・, enc: Windows-31J, bytes: e3-81-81-45      

bunlder が Kernel#excec(cmdname, arg1, ...)形式を利用しているため、

bundle exec mygemprogram 引数

として作成中にgemを実行する場合、漢字を含む引数が正しく受け取れ
なくなっています。


Files

test.rb (111 Bytes) test.rb 最初の引数をEncoding, バイト列とともに表示する dogatana (Toshihiko Ichida), 10/14/2016 01:05 PM
Actions #1

Updated by nobu (Nobuyoshi Nakada) over 7 years ago

  • Status changed from Open to Closed

Applied in changeset r56424.


process.c: use uaspawn

Actions

Also available in: Atom PDF

Like0
Like0