提交时从Base64编码的字符串中删除空格

4

我需要从一个base64编码的文件中移除空白字符。当Base64被POST时,输出字符串中会有更多的空格。这些空格是从哪里来的呢?

我该如何去除这些空格?


你使用什么代码来生成和发布Base64编码的字符串? 发布字符串不应该添加更多的空格。 - Timothy Groote
这是一个图像的二进制字符串(将图像转换为二进制并使用Base64编码),并从iPhone程序中发布。 - Rinto George
2个回答

4
当Base64被POST时,所有加号(+)都会被解析为空格。因此,我使用了str_replace将空格转换回加号。这节省了我的时间。

这是潜在不安全的。 请看我的答案为什么。 - Timothy Groote

2
如果您发布一个字符串,根据您编码POST消息的方式,POST消息的内容将被编码(在大多数情况下默认为URL编码或HTML编码)。如果您的POST消息包含一个“+”字符,而应该是空格,则表示它正在进行URL编码。如果您的POST消息包含一个“%20”,而应该是空格,则表示它正在进行HTML编码。PHP提供了将这些编码后的字符串还原回本应该是的方法。其中,urldecode (PHP4和PHP5) documentation can be found here和html_entity_decode(PHP 4.3.0+和PHP5) documentation can be found here

这在我们进行 PHP 与 PHP 的通信时还好,但我认为这是一个奇怪的状态。这是我第一次使用 PHP 和 iPhone 应用程序,无论如何,Ben 的答案解决了我的问题。当然,我会更深入地研究你的答案。 - Rinto George
URL编码和解码,以及HTML编码和解码不应因平台而异,因为它们遵循相同的标准。我已经在MonoTouch iPhone应用程序中完成了相同的操作。 - Timothy Groote

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接