From: Shin-ichiro Hara Date: 1997-02-23T17:37:17+09:00 Subject: [ruby-list:2242] [BUG] decode64 原です。 lib/base64.rb に入った「わたなべ式」decode64 ですが、、 def decode64(str) string = '' for line in str.split("\n") line.delete!('^A-Za-z0-9+') # remove non-base64 chars line.tr!('A-Za-z0-9+', ' -_') # convert to uuencoded format len = ["#{32 + line.length * 3 / 4}"].pack("c") # compute length byte string += "#{len}#{line}".unpack("u") # uudecode and concatenate end return string end これって BASE63 になってません?(^^; line.delete!('^A-Za-z0-9+') => line.delete!('^A-Za-z0-9+/') line.tr!('A-Za-z0-9+', ' -_') => line.tr!('A-Za-z0-9+/', ' -_') ですよね。 そもそも、Christiansen の > #!/usr/bin/perl > while (<>) { > tr#A-Za-z0-9+/##cd; # remove non-base64 chars > tr#A-Za-z0-9+/# -_#; # convert to uuencoded format > $len = pack("c", 32 + 0.75*length); # compute length byte > print unpack("u", $len . $_); # uudecode and print > } から変なんだけど。 自分が使ってるのは、いじっているうちに直していて、今まで 気づかなかったみたです。