Hatena::Grouprubyist

ayucat.chのRuby/Rails日記 (新) このページをアンテナに追加 RSSフィード

ayucatのRuby/Rails日記 ( rubyist.g.hatena.ne.jp/ayucat_on_t@be10g/ )からこちらに移行中

2008年分(冬)まで移行済み

ブログ本家はこちら

 | 

2008-06-02

RubyのBase64エンコード

RubyのBase64エンコード - ayucat.chのRuby/Rails日記 (新) を含むブックマーク はてなブックマーク - RubyのBase64エンコード - ayucat.chのRuby/Rails日記 (新)

d:id:tasukuchan:20080602:1212416261

Base64.b64encode()を使うと、今度は途中とお尻に勝手に改行が入る。マニュアルには書いていない挙動(るびまには書いてあるが)。

x86_64環境でRubyからMySQLのクエリを実行するときの問題が示す根本的な問題… - グニャラくんのグニャグニャ備忘録@はてな

より。

あれ、

irb> require 'base64'
irb> puts Base64.b64encode("x" * 100, 30)
eHh4eHh4eHh4eHh4eHh4eHh4eHh4eH
h4eHh4eHh4eHh4eHh4eHh4eHh4eHh4
eHh4eHh4eHh4eHh4eHh4eHh4eHh4eH
h4eHh4eHh4eHh4eHh4eHh4eHh4eHh4
eHh4eHh4eHh4eA==
irb> puts Base64.b64encode("x" * 100, 60)
eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4
eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4
eHh4eHh4eHh4eA==
irb> puts Base64.b64encode("x" * 100, 120)
eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4
eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4
eHh4eHh4eHh4eA==
irb> puts Base64.b64encode("x" * 100, 1 << 32 -1)
eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4
eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4
eHh4eHh4eHh4eA==

って・・・。そういうもんですっけ?

気持ちが悪いなー。結局60以上にできないって。。。

もひとつ。

Base64.b64encode().split.joinなどをして改行を除去する必要がある。

x86_64環境でRubyからMySQLのクエリを実行するときの問題が示す根本的な問題… - グニャラくんのグニャグニャ備忘録@はてな

ってあるけど、

Base64.b64encode().gsub(/\n/, '')

ではなくて、

Base64.b64encode().split.join

ってのは何でなんかな。

タイプ量が短いんかな?

速いんかな?

「本当にみんなサーバサイドでRubyを使っているんだろうか」

とちょっと不安になったりしたのでした…

x86_64版のOSは今や珍しくなくなってきましたし…

x86_64環境でRubyからMySQLのクエリを実行するときの問題が示す根本的な問題… - グニャラくんのグニャグニャ備忘録@はてな

1<<32-1

なんて大きい数字はおろか

1<<20

ですら、扱う必要がないサーバサイドでRuby on x86_64を使っているな、私。

参考文献

コメント

tasukuchan 2008/06/03 12:17

おおおー!ruby-doc.orgっていうのがあるんですね。

こちらだとちゃんとb64encodeの挙動が書いてありますねー。参考になります。

改行除去は好みの問題だと思います。

るびまでsplit.joinと書いてあったのでそうした記憶があります。

ayucat 2008/06/04 00:25

なるほど、るびまを読まないRuby歴が長くなってしまっているので、これを機会にるびまを読んでみようかと思いました><

パッチを公開されてますね。次回大きい数字を扱う場面でぜひ利用させてくださいm(__)m

 |