2011-10-10 98 views
0

我有一個iPhone應用程序,將圖像轉換成NSData &然後轉換爲base64編碼的字符串。Blob數據替換空間'+'

將此編碼字符串提交給服​​務器的服務器數據庫中的服務器時,存儲在服務器'+'被轉換爲'空間',因此解碼器無法正常工作。

我想問題是數據庫中的表的默認編碼。目前它的拉丁文,我試圖將其更改爲UTF8,但問題仍然存在。

任何其他編碼,請幫忙

回答

2

當然 - 這與編碼無關。它是POSTGET參數的格式,它會與base64產生衝突。在http://en.wikipedia.org/wiki/Base64#Variants_summary_table看到其目的是爲了讓使用URL等的base64工作方案

其中一個變種是「用的Base64 URL和文件名安全字母(RFC 4648‘base64url’進行)」取代了+-/_

另一種替代方法是用%xx替換違規字符+/=各自的十六進制表示 - 但這會使數據不必要地變長。

+0

:那我該怎麼辦?我必須更改編碼邏輯,否則我必須將此編碼的字符串轉換爲url編碼的字符串,以確保像openssl這樣的通用解碼器可以解碼我提交的數據? –

+0

您可以執行其中的任何操作,具體取決於您在接收方所擁有的內容。替換非常簡單,而且還可以使用urlencoding - 盡你最大的努力去做。 – glglgl