From: "Yugui (Yuki Sonoda)" Date: 2008-12-07T12:18:38+09:00 Subject: [ruby-dev:37295] [BUG:trunk] Encoding in which Array#pack returns when the last format is 'u', 'M', 'm' Yuguiです。 たぶん[ruby-dev:37286]がらみですが、パックフォーマットの最後に'u', 'M', 'm'があると戻り値が問答無用でUS-ASCIIになります。 str1 = "\xE0\xE1".force_encoding("iso-8859-1") str2 = "\u3042".encode("UTF-16BE") bin1 = "\xFF\xFe\x81\x82" p [str1].pack("A*").encoding #=> # p [str2].pack("A*").encoding #=> # p [str1, str2].pack("A*A*").encoding #=> # p [str1, bin1].pack("A*m").encoding #=> # p [str2, bin1].pack("A*m").encoding #=> # p [str1, str2, bin1].pack("A*A*m").encoding #=> # -- Yugui http://yugui.jp 私は私をDumpする