On 04/10/2011 12:22, NARUSE, Yui wrote:
>> 例えば、
>>
>> $ ruby1.9 -ve 'a="あ";"あ".encode("euc-jp"); $SAFE=4; a.encode("euc-jp")'
>> ruby 1.9.3dev (2011-09-23 revision 33323) [x86_64-linux]
>>
>> ↑これは動きますが、
>>
>> $ ruby1.9 -ve 'a="あ";"".encode("euc-jp"); $SAFE=4; a.encode("euc-jp")'
>> ruby 1.9.3dev (2011-09-23 revision 33323) [x86_64-linux]
>> -e:1:in `encode': Insecure operation - encode (SecurityError)
>>        from -e:1:in `<main>'
>>
>> ↑これは動きません。
>>
>> この「あらかじめロードする」技が、対象となるStringと関係なく動くわけでは
>> ないとなれば、残念ながらワークアラウンドになりません。
> 
> 空文字や ASCII 文字列はエンコーディング変換を要しないので変換ライブラリをロードしません。
> なので、空文字では workaround にはなりません。
> "\uFEFF".encode(enc) rescue nil
> などとすれば任意のエンコーディングでいけるはずです。

おぉ、素晴らしい。無事に回避できました。ありがとうございます。

かずひこ