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 回答