base64_decodeを使用する際の注意点

プログラミング

スペースが入った文字をbase64_decode

base64_decodeを使用したのですが、なぜか値が正常にならずに悩みました。

そこで分かったこととして、

base64_encodeしたデータをPOSTで渡すと、Base64の「+」記号が勝手にスペースに変換される模様。
それで、そのデータをbase64_decodeしてもデータが崩れるという事象が起こってたらしい。

そこで、先にスペースを+に変換してから、decodeしてあげることで回避出来ました。

$str = base64_decode(str_replace(' ', '+', $str));

最後に

分かってしまえば非常に簡単なものの、結構悩みました。これはPHP自体の問題なのだろうか。。

コメントを残す