From: "U.Nakamura" Date: 2004-03-23T09:45:03+09:00 Subject: [ruby-list:39424] Re: 例えば "26" を "&" に変換したい(sub, hex, pack) こんにちは、なかむら(う)です。 In message "[ruby-list:39423] 例えば "26" を "&" に変換したい(sub, hex, pack)" on Mar.23,2004 09:35:48, wrote: | x = "%26".sub(/%([a-fA-F0-9][a-fA-F0-9])/, ['\1'.hex].pack("C*")) | p x | | を実行すると、 | "\000" | となります。 | "&" | となって欲しいのですが、 | どこが間違っているのでしょうか? subが実行される前に、subの引数の第2項が評価されてしまいます。 "\1".hexは0になるので、結果は"\000"となります。 というわけで、 x = "%26".sub(/%([a-fA-F0-9][a-fA-F0-9])/){ [$1.hex].pack("C*") } p x あたりでしょうか。 それでは。 -- U.Nakamura