• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      Base64編碼及其在AppInventor中的應用

      2021-06-24 00:38王德貴丁大為
      電腦報 2021年4期
      關鍵詞:字符字節(jié)編碼

      王德貴 丁大為

      在學習、生活和工作中,人和人之間離不開各種交流和溝通。除了面對面通過語言、表情和動作等方式交流以外,還可以進行網(wǎng)上交流,這就需要相互間傳送一些文字、圖片、聲音或是視頻等信息,那么這些信息是怎么傳送的呢?圖片和視頻的審核,是怎么知道其中有違法內容的呢?在AppInventor安卓應用開發(fā)時,音樂、圖片和視頻為什么不能直接傳輸呢?那現(xiàn)在我們就來探討一下,Base64編碼在信息傳輸過程中的重要應用。

      一、Base64編碼

      1.數(shù)據(jù)編碼

      在生活中,我們經(jīng)常會遇到這樣的情況,比如去銀行辦事,到那之后,會拿到一個號碼,然后就是等待工作人員叫到這個號碼,你才去辦理業(yè)務。銀行并不知道你是誰,也無須知道是誰,用這個號碼對應每個辦理業(yè)務的人就可以了。其實,這就是編碼。

      字符集(Character set)是多個字符的集合,字符集種類較多,每個字符集包含的字符個數(shù)不同,我們常見的字符集有ASCII字符集、GB2312字符集、BIG5字符集、 GB18030字符集、Unicode字符集等。計算機要準確地處理各種字符集文字,必須進行字符編碼,計算機才能識別和存儲各種文字,但要是把字符發(fā)送給對方,對方卻只能識別ASCII碼,其他字符集還需要再次進行編碼,這就是Base64編碼誕生的原因。

      2.Base64編碼

      Base64是網(wǎng)絡上最常見、也是最基本的用于傳輸8bit字節(jié)代碼的二進制編碼方式,用來將非ASCII字符的數(shù)據(jù)轉換成ASCII字符的一種方法。它用64個可打印字符(包括a-z、A-Z、0-9、/、+)來表示二進制數(shù)據(jù)0-63,碼表如圖。

      3.編碼規(guī)則

      編碼規(guī)則:①把3個字節(jié)變成4個字節(jié)。②每76個字符加一個換行符。③最后的結束符也要處理。

      原文的字節(jié)數(shù)量如果是3的倍數(shù),Base64編碼要求把每三個8bit的字節(jié)轉換為四個6bit的字節(jié)(3×8 = 4×6 = 24),然后把6bit兩位高位添0,組成四個8bit的字節(jié),也就是說,轉換后的字符串將要比原來的長1/3。

      原文的字節(jié)數(shù)量如果不是3的倍數(shù),那就將原文剩余的字節(jié)根據(jù)編碼規(guī)則繼續(xù)單獨轉(1變2,2變3;不夠的位數(shù)用0補全),再用“=”號補滿4個字節(jié)。這就是為什么有些Base64編碼會以一個或兩個等號結束的原因,但等號最多只有兩個。我們根據(jù)規(guī)則將以下幾個字符轉換成Base64編碼。

      4.編碼過程

      根據(jù)這幾個例子,我們已經(jīng)看到了Base64就是用6位(2的6次冪就是64)表示字符,因此稱為Base64。同理,Base32就是用5位,Base16就是用4位,大家將來在編程中遇到時就不會覺得陌生了(例1、例2、例3)。

      5.編碼傳輸

      傳輸圖片的過程中為什么要編解碼?計算機上存儲的信息都有首尾定界符,如果在傳輸時只是簡單地將圖片以二進制讀出再傳輸,如果接收信息位中出現(xiàn)不可見的特殊字符(如控制字符)就會造成接收方誤判,而使信息接收不完整(錯誤)。為了保證數(shù)據(jù)被完整地傳給對方,需要先對其進行編碼,等接收方完整收到后,再對其進行解碼。

      同樣聲音和視頻等信息的編碼傳輸,也是一樣的道理。

      二、Base64編碼在AppInventor中的應用

      1.編碼應用實例

      根據(jù)前面的分析和講解,我們對Base64編碼有了初步的理解,其實處理任何發(fā)送或接收的信息,都要用到Base64編碼,只是有些應用里內置了轉換過程,但我們要從頭開發(fā)應用程序時,就需要做底層的信息轉換處理。下面我們看看文本、照片、聲音的Base64編碼在AppInventor安卓應用開發(fā)中的具體運用。由于視頻的Base64編碼太長,這里不做說明。

      掃碼下載源代碼并在AppInventor中導入。先看看頁面及組件設計,程序在后面具體應用中說明(圖1)。

      當點擊“文本”按鈕時,隱藏“圖像選擇框”,取消“文本輸入布局”隱藏;當點擊“拍照”按鈕,隱藏“文本輸入布局”。其他按常規(guī)設置即可。

      (1)文本編碼

      文本編碼就是讓AppInventor按Base64編碼規(guī)則將源文件轉碼。

      先創(chuàng)建變量,保存需要轉換文件的路徑(圖2)。

      當點擊“文本”按鈕時,“圖像選擇框”隱藏,“文本輸入布局”顯示,輸入文本后,點擊“提交”確認,點擊“查看”按鈕即可看到對應的Base64編碼(圖3)。

      文本輸入中文“電腦報”,點擊按鈕“提交”和“查看”,即可看到上述效果。大家可以驗證前面所講的3個例子,或是輸入任何字符進行測試,都可看到對應的Base64編碼。

      從以上程序可以看到,在AppInventor應用中,文本編碼作為基本測試,還是很好理解的,當然,也可以將Base64編碼進行解碼還原出原始字符,這里不再贅述。下一部分我們繼續(xù)講解圖片編碼、聲音編碼,以及AI智能審核原理解析。

      (未完待續(xù))

      猜你喜歡
      字符字節(jié)編碼
      住院病案首頁ICD編碼質量在DRG付費中的應用
      Python實現(xiàn)圖片轉字符畫
      字節(jié)跳動瞄準教育等新業(yè)務
      正則表達式快速入門
      圖片輕松變身ASCⅡ藝術畫
      高效視頻編碼幀內快速深度決策算法
      視頻監(jiān)視系統(tǒng)中字符疊加技術的應用
      人類進入“澤它時代”
      不斷修繕 建立完善的企業(yè)編碼管理體系
      革吉县| 巩义市| 托克托县| 伊宁市| 阜新市| 荔波县| 沙田区| 台山市| 榆树市| 屏东市| 天津市| 会东县| 桂阳县| 渝中区| 莱州市| 镇安县| 绥德县| 海阳市| 方城县| 濮阳县| 青海省| 启东市| 克山县| 张家界市| 黑河市| 舟曲县| 德兴市| 桃园县| 定陶县| 辛集市| 瑞丽市| 铁岭县| 和平县| 伊川县| 东乌珠穆沁旗| 晋州市| 高安市| 南溪县| 衡水市| 金溪县| 长岭县|