我有一个iphone应用程序,可将图像转换为NSData&然后转换为base64编码的字符串。
当这个编码的字符串被提交到服务器数据库中的服务器时,存储在服务器上的'+'会被转换为'space',因此解码器无法正常工作。
我猜问题是数据库中表的默认编码。目前它的拉丁语,我尝试将其更改为UTF8,但问题仍然存在。
任何其他编码,请帮助
答案 0 :(得分:2)
当然 - 这与编码无关。它是POST
和GET
参数的格式,它与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}} - 但这会使数据不必要地更长。