2012-01-17 33 views
1

由於CRLF,我在解碼/編碼base64字符串時遇到了麻煩。 我試過這個lib Base64.h和這個NSData+Base64.h但都不好處理CRLFiOS Base64 Lib,防止CRLF

之前有人有過這個問題嗎?

任何人都有如何避免這些問題的建議CRLF?我認爲Android's Java lib正在用'0'代替,我正確嗎?

public static final int CRLF = 4; 
+1

CRLF表示兩個字符:CR:0x0d後跟LF:0x0a。 – zaph 2012-01-17 12:00:00

+0

解碼後的字符串長度= 23,但應該是24,我應該在繼續之前追加這些字符嗎? – 2012-01-17 12:34:43

+1

爲什麼你認爲解碼後的字符串應該是24?添加Base64表示和字符串給你的問題,這將有助於答案。 – zaph 2012-01-17 12:39:13

回答

1
的Base64

編碼64個字符,即 'A-ZA-Z0-9 + /' 與可能的末尾的 '=' 表示非模3的長度。 CR + LF可以用作行分隔符,通常單獨解碼每行。

有關CR + LF變體的更多信息,請參閱Wikipedia Base64

「+ vqbiP7s3oe7/puJ8v2a3fOYnf3vmpap」 解碼是: 「FA FA 9B 88 FE EC DE 87 BB FE 9B 89 F2 FD 9A DD F3 98 9D FD EF 9A 96 A9」
最後一個字符不是0。