base64: 改行


pythonだと、base64.encodestring()だと自動改行されます。
hdknr@deb09:~/openidtx/openidtx/samples/cx$ python
Python 2.5.2 (r252:60911, Jan  4 2009, 17:40:26)
[GCC 4.3.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import base64
>>> len(base64.b64encode(''.join(open('openid.py').readlines())).split('\n'))
1
>>> len(base64.encodestring( ''.join( open('openid.py').readlines())).split('\n'))
132
rubyだと自動改行。
hdknr@deb09:~/openidtx/openidtx/samples/cx$ irb
irb(main):001:0> require 'base64'
=> true
irb(main):002:0> b64encode(open('openid.py').read).split.length

dGlkPWhhc2hsaWIubWQ1KHN0cih0aW1lLnRpbWUoKSkpLmhleGRpZ2VzdCgp
CiAgIHQ9dGlja2V0X3NhbXBsZSgpIAogICB0LnNldF9wYXJhbSgnbW9kZScs
J2FjY2VwdGVkX29mZmVyJykKCg==
=> 166
ちなみにこっちでも同じ。
hdknr@deb09:~/openidtx/openidtx/samples/cx$ irb
irb(main):001:0> require 'base64'
=> true
irb(main):002:0> Base64.encode64(open('openid.py').read).split.length
irb(main):002:0> Base64.encode64(open('openid.py').read).split.length
=> 166
phpだと自動改行なし。
<?php
$a="ssss\ndddddd";
echo strlen($a),"\n";
echo count(split("\n",$a)),"\n";
$a="ssssdddddd";
echo count(split("\n",$a)),"\n";
echo count(split("\n",base64_encode(file_get_contents('openid.py')))),"\n";    // ‘\n’だと意味がことなるので注意。

hdknr@deb09:~/openidtx/openidtx/samples/cx$ php test.php
11
2
1
1

カテゴリー: 未分類 パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中