ルビーの
Base64.decode64('OVUP/PZrLzoZpaeQga/TpK9xeJAOuTTbUzm9NplDuhSUMkklPtDeDQDgidUEIX+ijxe80EI').length
51 を返します。
PHPの
strlen(base64_decode('OVUP/PZrLzoZpaeQga/TpK9xeJAOuTTbUzm9NplDuhSUMkklPtDeDQDgidUEIX+ijxe80EI'))
53 を返します。
なんで?
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 デコーダーによって拒否されます。