与unpack(“m”)相反的是什么?

时间:2011-02-06 19:42:29

标签: ruby encoding base64

我正试图弄清楚如何以与Facebook's signed_request类似的方式对会话cookie进行编码。

runwithfriends Facebook sample app implements base64_url_decode & base64_url_decode in Python

我找到了base64_url_decode的简单实现:

def base64_url_decode(string)
  "#{string}==".tr("-_", "+/").unpack("m")[0]
end

如何实施base64_url_encode w / o require 'base64'。 (我觉得最好不要做require 'base64',对吧?)

基本上,与unpack("m")相反的是什么?

ruby-1.9.2-p0 > "aGVsbG8sIG1ycyB0ZWFs\012".unpack("m")
 => ["hello, mrs teal"] 

2 个答案:

答案 0 :(得分:3)

the documentation查看Base64.encode64的来源:

# File base64.rb, line 37
def encode64(bin)
  [bin].pack("m")
end

是的,与unpack相反的是pack

答案 1 :(得分:1)

  
    

与解包(“m”)相反的是什么?

  

肯定是pack("m")?或者这是一个棘手的问题吗?

["hello, mrs teal"].pack("m") # => "aGVsbG8sIG1ycyB0ZWFs\n"