[ruby-dev:49838] [Ruby trunk Bug#12841] Kernel#exec(cmdname, arg1, ...) passes arg1 that is encoded strangely on Japanese Windows
From:
dogatana@...
Date:
2016-10-14 13:06:46 UTC
List:
ruby-dev #49838
Issue #12841 has been reported by Toshihiko Ichida.
----------------------------------------
Bug #12841: Kernel#exec(cmdname, arg1, ...) passes arg1 that is encoded strangely on Japanese Windows
https://bugs.ruby-lang.org/issues/12841
* Author: Toshihiko Ichida
* Status: Open
* Priority: Normal
* Assignee:
* ruby -v: ruby 2.3.0p0 (2015-12-25 revision 53290) [i386-mingw32]
* Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN
----------------------------------------
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)
--
https://bugs.ruby-lang.org/