Blob数据用空格替换'+'

时间:2011-10-10 07:33:57

标签: iphone mysql character-encoding blob

我有一个iphone应用程序,可将图像转换为NSData&然后转换为base64编码的字符串。

当这个编码的字符串被提交到服务器数据库中的服务器时,存储在服务器上的'+'会被转换为'space',因此解码器无法正常工作。

我猜问题是数据库中表的默认编码。目前它的拉丁语,我尝试将其更改为UTF8,但问题仍然存在。

任何其他编码,请帮助

1 个答案:

答案 0 :(得分:2)

当然 - 这与编码无关。它是POSTGET参数的格式,它与base64创建冲突。在http://en.wikipedia.org/wiki/Base64#Variants_summary_table中,您会看到旨在使base64与URL等协同工作的替代方案。

其中一个变体是“Base64 with URL and Filename Safe Alphabet(RFC 4648'base64url'encoding)”,它将+替换为-,将/替换为_ +/=

另一个替代方法是用%xx的各个十六进制代表替换有问题的字符{{1}} - 但这会使数据不必要地更长。