1

ルビーの

Base64.decode64('OVUP/PZrLzoZpaeQga/TpK9xeJAOuTTbUzm9NplDuhSUMkklPtDeDQDgidUEIX+ijxe80EI').length

51 を返します。

PHPの

strlen(base64_decode('OVUP/PZrLzoZpaeQga/TpK9xeJAOuTTbUzm9NplDuhSUMkklPtDeDQDgidUEIX+ijxe80EI'))

53 を返します。

なんで?

4

1 に答える 1

1

Ruby でデコードすると、次のようになります。

"9U\x0F\xFC\xF6k/:\x19\xA5\xA7\x90\x81\xAF\xD3\xA4\xAFqx\x90\x0E\xB94\xDBS9\xBD6\x99C\xBA\x14\x942I%>\xD0\xDE\r\x00\xE0\x89\xD5\x04!\x7F\xA2\x8F\x17\xBC" 

PHP で余分な文字が表示される場合は、完全に正しくエンコードされていないことが原因である可能性があります。これをデコードして再エンコードすると、別の文字列が生成されます。

"OVUP/PZrLzoZpaeQga/TpK9xeJAOuTTbUzm9NplDuhSUMkklPtDeDQDgidUE\nIX+ijxe8\n"

これは、元のものとは少し異なりますが、おそらくそうではなく、同じものにデコードされます。

この0EI部分は不完全である可能性があり、Ruby デコーダーによって拒否されます。

于 2012-08-19T05:56:18.513 に答える