我正在嘗試編寫一個小型Base64編碼器/解碼器程序,並試圖找出是否有任何規則或任何指南或預期行爲,碰到一個無效的字符。如何在解碼Base64字符串時處理錯誤
我可能會快速失敗(抱怨和退出),忽略無效字符(就像我爲換行符所做的那樣),或者做一個垃圾進入垃圾方法(數據將被部分解碼,其餘依賴於嚴重程度或錯誤的確切數量)。
在類似的觀點上:我想我應該忽略換行符(比如在PEM文件中,行被打斷爲64個字符長度),但是有沒有其他控制字符可以預期,應該忽略不計?
如果它有任何興趣,我在純(香草)C編碼,它還沒有它的庫。但是這個細節對於我正在尋找的答案應該沒有什麼關係。
謝謝。
這個問題過於寬泛。至少有十幾種使用base64編碼的變體。選擇要使用的變體,並使用該變體的規則和限制。 –
我主要將我的實現基於RFC的HTTP(1945,2068)中的描述,該描述基於MIME RFC(早在1341年)。然而,這些消息來源似乎都沒有描述出現錯誤時該怎麼辦。 – Menachem
好吧,我期望RFC1945和RFC2068在內容編碼方面非常模糊,因爲它們定義了HTTP協議。你可以看看RFC2045的MIME base64。但是,錯誤處理將完全取決於特定應用程序的需求。 –