- Ruby 初心者スレッド Part 57©2ch.net [転載禁止]©2ch.net
859 :デフォルトの名無しさん[sage]:2016/01/06(水) 22:03:21.69 ID:UtgyJeyz - >>857をヒントにこんな感じになった
#!/usr/bin/ruby -E utf-8 # encoding: utf-8 require 'win32ole' cl=nil l=WIN32OLE.new("WbemScripting.SWbemLocator") s=l.ConnectServer(nil, "root\\CIMV2") c=s.ExecQuery("Select * From Win32_Process Where ProcessId=#{Process.pid}") c.each{|i| cl=i.CommandLine[/#{$0}\s(.+)$/, 1] } p cl これでUnicodeな文字が入っていてもUTF-8で受け取れました。ARGVは-Ku(-Eも)を付けても SJISに変換されてしまう模様。このコードでも-Kuや-E utf8を付けないと?に変換されちゃってダメです 無意味にeach呼び出しているのは避けたかったけどItem(0)と書いても例外吐いちゃうし 他の方法が見つからなかったです
|