[SHOULD]

これ、元のコードがテキストとして処理しているので一見文字コードを指定すべきに見えますが、そもそもここはバイナリデータをそのまま返す場合だと思うので、バイナリモードで開かないとダメですね。