国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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è)編碼管理體系