base64 的四種編碼方式

事情的起因是這樣的:

在做 siber 項(xiàng)目的時(shí)候,有接口使用 []byte 類(lèi)型數(shù)據(jù)接收文件流。

 // proto 定義
 bytes file_data = 1;

但是 siber 是統(tǒng)一使用 json 格式進(jìn)行的 request body 定義,不能直接傳輸。

一個(gè)通用的解決方案是將 []byte 轉(zhuǎn)化為 base64 進(jìn)行傳輸。我們選用這個(gè)包:

"encoding/base64"

這個(gè)包下面帶有不同的 base64 編碼格式:

  • StdEncoding:常規(guī)編碼
  • URLEncoding:URL safe 編碼
  • RawStdEncoding:常規(guī)編碼,末尾不補(bǔ) =
  • RawURLEncoding:URL safe 編碼,末尾不補(bǔ) =

跟常規(guī)編碼相比, URL safe替換掉字符串中的特殊字符,+/

[]byte("Hello world. 你好,世界!") 為例:

base64.StdEncoding.EncodeToString(msg)
// SGVsbG8gd29ybGQuIOS9oOWlve+8jOS4lueVjO+8gQ==

base64.RawStdEncoding.EncodeToString(msg)
// SGVsbG8gd29ybGQuIOS9oOWlve+8jOS4lueVjO+8gQ

base64.URLEncoding.EncodeToString(msg)
// SGVsbG8gd29ybGQuIOS9oOWlve-8jOS4lueVjO-8gQ==

base64.RawURLEncoding.EncodeToString(msg)
// SGVsbG8gd29ybGQuIOS9oOWlve-8jOS4lueVjO-8gQ

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言:前面學(xué)習(xí)總結(jié)了平時(shí)開(kāi)發(fā)中遇見(jiàn)的各種數(shù)據(jù)加密方式,最終都會(huì)對(duì)加密后的二進(jìn)制數(shù)據(jù)進(jìn)行Base64編碼,起到一種二...
    博格體閱讀 1,336評(píng)論 0 1
  • 背景介紹 base64的作用是以可見(jiàn)字符的形式對(duì)非純文本文件進(jìn)行編碼轉(zhuǎn)換, 簡(jiǎn)而言之就是用可見(jiàn)字符集中的字符替換原...
    markict閱讀 1,177評(píng)論 0 0
  • 簡(jiǎn)述 Base64常用于在通常處理文本數(shù)據(jù)的場(chǎng)合,表示、傳輸、存儲(chǔ)一些二進(jìn)制數(shù)據(jù)。 Base64編碼提供以下幾種f...
    sylviaMo閱讀 879評(píng)論 0 0
  • # 簡(jiǎn)介 Base64是一種用64個(gè)字符來(lái)表示任意二進(jìn)制數(shù)據(jù)的方法。是一種編碼方法,有自己的編碼表,所以稱(chēng)為Bas...
    Tenloy閱讀 4,310評(píng)論 0 4
  • 1.什么是BASE64編碼 BASE64就是一種基于64個(gè)可打印字符來(lái)表示二進(jìn)制數(shù)據(jù)的方法。換句話(huà)說(shuō),就是將二進(jìn)制...
    p_in_phd閱讀 778評(píng)論 0 1

友情鏈接更多精彩內(nèi)容