Golang 和Python zlib 差異
當比較使用Python 的zlib 函式庫和Go 的flate 套件壓縮字串的結果時,出現了差異。在這個問題中,Python 版本產生的輸出帶有額外的零字節,而 Golang 版本則沒有。
差異源自於兩個函式庫採取的不同方法。 Python 的 zlib 會將資料壓縮為 zlib 格式,其中包括標頭和校驗和。相較之下,Go 的 flate 直接實作 DEFLATE 演算法,產生沒有標頭或校驗和的原始 DEFLATE 流。
要從Go 獲得相同的輸出,請修改程式碼以在寫入壓縮資料後明確刷新緩衝區:
但是,需要注意的是,不同壓縮庫的輸出可能不是逐字節相同的。雖然他們的目標是相容性,但具體的實現細節可能會導致變化。
以上是與 Python 的 zlib 函式庫相比,為什麼 Go 的 flate 套件會產生不同的壓縮輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!