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