編碼方式有哪些?
編碼類型都有哪些
1ASCII
2編碼
3MBCS
4GB2312
5GBK
6Big5
7Unicode(UTF-16)
8UTF-8
9Base64
字符常見的幾種編碼方式
無論在是在編輯文本文件的時候,還是在製作網頁的時候,總會遇到文本編碼方式的問題。如果處理不當,就會出現亂碼的問題。因此,有必要對文本的編碼方式做一個詳盡的瞭解。
常見的一些字符編碼方式無非有:Unicode、ASCII、GBK、GB2312、UTF-8。下面先對常見的這一些字符編碼方式作下說明:
1.ASCII碼
這是美國在19世紀60年代的時候為了建立英文字符和二進制的關係時制定的編碼規範,它能表示128個字符,其中包括英文字符、阿拉伯數字、西文字符以及32個控制字符。它用一個字節來表示具體的字符,但它只用後7位來表示字符(2^7=128),最前面的一位統一規定為0。
2.擴展的ASCII碼
原本的ASCII碼對於英文語言的國家是夠用了,但是歐洲國家的一些語言會有拼音,這時7個字節就不夠用了。因此一些歐洲國家就決定,利用字節中閒置的最高位編入新的符號。比如,法語中的é的編碼為130(二進制10000010)。這樣一來,這些歐洲國家使 用的編碼體系,可以表示最多256個符號。但這時問題也出現了:不同的國家有不同的字母,因此,哪怕它們都使用256個符號的編碼方式,代表的字母卻不一樣。比如,130在法語編碼 中代表了é,在希伯來語編碼中卻代表了字母Gimel (?),在俄語編碼中又會代表另一個符號。但是不管怎樣,所有這些編碼方式中,0—127表示的符號是一樣的,不一樣的只是128—255的這一段。這個問題就直接促使了Unicode編碼的產生。
3.Unicode符號集
正如上一節所說,世界上存在著多種編碼方式,同一個二進制數字可以被解釋成不同的符號。因此,要想打開一個文本文件,就必須知道它的編碼方式,否則用錯誤的編碼方式解讀,就會出現亂碼。為什麼電子郵件常常出現亂碼?就是因為發信人和收信人使用的編碼方式不一樣。而Unicode就是這樣一種編碼:它包含了世界上所有的符號,並且每一個符號都是獨一無二的。比如,U+0639表示阿拉伯字母Ain,U+0041表示英語的大寫字母A,U+4E25表示漢字“嚴”。具體的符號對應表,可以查詢unicode.org,或者專門的漢字對應表 。很多人都說Unicode編碼,但其實Unicode是一個符號集(世界上所有符號的符號集),而不是一種新的編碼方式。
但是正因為Unicode包含了所有的字符,而有些國家的字符用一個字節便可以表示,而有些國家的字符要用多個字節才能表示出來。即產生了兩個問題:第一,如果有兩個字節的數據,那計算機怎麼知道這兩個字節是表示一個漢字呢?還是表示兩個英文字母呢?第二,因為不同字符需要的存儲長度不一樣,那麼如果Unicode規定用2個字節存儲字符,那麼英文字符存儲時前面1個字節都是0,這就大大浪費了存儲空間。
上面兩個問題造成的結果是:1)出現了unicode的多種存儲方式,也就是說有許多種不同的二進制格式,可以用來表示unicode。2)unicode在很長一段時間內無法推廣,直到互聯網的出現。
4.UTF-8
互聯網的普及,強烈要求出現一種統一的編碼方式。UTF-8就是在互聯網上使用最廣的一種unicode的實現方式。其他實現方式還包括UTF-16和UTF-32,不過在互聯網上基本不用。重複一遍,這裡的關係是,UTF-8是Unicode的實現方式之一。
UTF-8最大的一個特點,就是它是一種變長的編碼方式。它可以使用1~4個字節表示一個符號,根據不同的符號而變化字節長度。
UTF-8的編碼規則很簡單,只有兩條:
1)對於單字節的符號,字節......
Java幾種常見的編碼格式
ASCII 碼
學過計算機的人都知道 ASCII 碼,總共有 128 個,用一個字節的低 7 位表示,0~31 是控制字符如換行回車刪除等;32~126 是打印字符,可以通過鍵盤輸入並且能夠顯示出來。
ISO-8859-1
128 個字符顯然是不夠用的,於是 ISO 組織在 ASCII 碼基礎上又制定了一些列標準用來擴展 ASCII 編碼,它們是 ISO-8859-1~ISO-8859-15,其中 ISO-8859-1 涵蓋了大多數西歐語言字符,所有應用的最廣泛。ISO-8859-1 仍然是單字節編碼,它總共能表示 256 個字符。
GB2312
它的全稱是《信息交換用漢字編碼字符集 基本集》,它是雙字節編碼,總的編碼範圍是 A1-F7,其中從 A1-A9 是符號區,總共包含 682 個符號,從 B0-F7 是漢字區,包含 6763 個漢字。
GBK
全稱叫《漢字內碼擴展規範》,是國家技術監督局為 windows95 所制定的新的漢字內碼規範,它的出現是為了擴展 GB2312,加入更多的漢字,它的編碼範圍是 8140~FEFE(去掉 XX7F)總共有 23940 個碼位,它能表示 21003 個漢字,它的編碼是和 GB2312 兼容的,也就是說用 GB2312 編碼的漢字可以用 GBK 來解碼,並且不會有亂碼。
GB18030
全稱是《信息交換用漢字編碼字符集》,是我國的強制標準,它可能是單字節、雙字節或者四字節編碼,它的編碼與 GB2312 編碼兼容,這個雖然是國家標準,但是實際應用系統中使用的並不廣泛。
UTF-16
說到 UTF 必須要提到 Unicode(Universal Code 統一碼),ISO 試圖想創建一個全新的超語言字典,世界上所有的語言都可以通過這本字典來相互翻譯。可想而知這個字典是多麼的複雜,關於 Unicode 的詳細規範可以參考相應文檔。Unicode 是 Java 和 XML 的基礎,下面詳細介紹 Unicode 在計算機中的存儲形式。
UTF-16 具體定義了 Unicode 字符在計算機中存取方法。UTF-16 用兩個字節來表示 Unicode 轉化格式,這個是定長的表示方法,不論什麼字符都可以用兩個字節表示,兩個字節是 16 個 bit,所以叫 UTF-16。UTF-16 表示字符非常方便,每兩個字節表示一個字符,這個在字符串操作時就大大簡化了操作,這也是 Java 以 UTF-16 作為內存的字符存儲格式的一個很重要的原因。
UTF-8
UTF-16 統一採用兩個字節表示一個字符,雖然在表示上非常簡單方便,但是也有其缺點,有很大一部分字符用一個字節就可以表示的現在要兩個字節表示,存儲空間放大了一倍,在現在的網絡帶寬還非常有限的今天,這樣會增大網絡傳輸的流量,而且也沒必要。而 UTF-8 採用了一種變長技術,每個編碼區域有不同的字碼長度。不同類型的字符可以是由 1~6 個字節組成。
UTF-8 有以下編碼規則:
如果一個字節,最高位(第 8 位)為 0,表示這是一個 ASCII 字符(00 - 7F)。可見,所有 ASCII 編碼已經是 UTF-8 了。
如果一個字節,以 11 開頭,連續的 1 的個數暗示這個字符的字節數,例如:110xxxxx 代表它是雙字節 UTF-8 字符的首字節。
如果一個字節,以 10 開始,表示它不是首字節,需要向前查找才能得到當前字符的首字節
Java 中需要編碼的場景
前面描述了常見的幾種編碼格式,下面將介紹 Java......
編碼方式是什麼?
搞清常用編碼特性是解決字符集編碼問題的基礎。字符集編碼的識別與轉換、分析各種亂碼產生的原因、編程操作各種編碼字符串(例如字符數計算、截斷處理)等都需要弄清楚編碼的特性。
瞭解一種字符集編碼主要是要了解該編碼的編碼範圍,編碼對應的字符集(都包含哪些字符),和其他字符集編碼之間的關係等。
ASCII
ASCII碼是7位編碼,編碼範圍是0x00-0x7F。ASCII字符集包括英文字母、阿拉伯數字和標點符號等字符。其中0x00-0x20和0x7F共33個控制字符。
只支持ASCII碼的系統會忽略每個字節的最高位,只認為低7位是有效位。HZ字符編碼就是早期為了在只支持7位ASCII系統中傳輸中文而設計的編碼。早期很多郵件系統也只支持ASCII編碼,為了傳輸中文郵件必須使用BASE64或者其他編碼方式。
GB2312
GB2312是基於區位碼設計的,區位碼把編碼表分為94個區,每個區對應94個位,每個字符的區號和位號組合起來就是該漢字的區位碼。區位碼一般 用10進制數來表示,如1601就表示16區1位,對應的字符是“啊”。在區位碼的區號和位號上分別加上0xA0就得到了GB2312編碼。
區位碼中01-09區是符號、數字區,16-87區是漢字區,10-15和88-94是未定義的空白區。它將收錄的漢字分成兩級:第一級是常用漢字 計3755個,置於16-55區,按漢語拼音字母/筆形順序排列;第二級漢字是次常用漢字計3008個,置於56-87區,按部首/筆畫順序排列。一級漢 字是按照拼音排序的,這個就可以得到某個拼音在一級漢字區位中的範圍,很多根據漢字可以得到拼音的程序就是根據這個原理編寫的。
GB2312字符集中除常用簡體漢字字符外還包括希臘字母、日文平假名及片假名字母、俄語西裡爾字母等字符,未收錄繁體中文漢字和一些生僻字。可以用繁體漢字測試某些系統是不是隻支持GB2312編碼。
GB2312的編碼範圍是0xA1A1-0x7E7E,去掉未定義的區域之後可以理解為實際編碼範圍是0xA1A1-0xF7FE。
EUC-CN可以理解為GB2312的別名,和GB2312完全相同。
區位碼更應該認為是字符集的定義,定義了所收錄的字符和字符位置,而GB2312及EUC-CN是實際計算機環境中支持這 種字符集的編碼。HZ和ISO-2022-CN是對應區位碼字符集的另外兩種編碼,都是用7位編碼空間來支持漢字。區位碼和GB2312編碼的關係有點像 Unicode和UTF-8。
GBK
GBK編碼是GB2312編碼的超集,向下完全兼容GB2312,同時GBK收錄了Unicode基本多文種平面中的所有CJK漢字。同 GB2312一樣,GBK也支持希臘字母、日文假名字母、俄語字母等字符,但不支持韓語中的表音字符(非漢字字符)。GBK還收錄了GB2312不包含的 漢字部首符號、豎排標點符號等字符。
GBK的整體編碼範圍是為0x8140-0xFEFE,不包括低字節是0×7F的組合。高字節範圍是0×81-0xFE,低字節範圍是0x40-7E和0x80-0xFE。
低字節是0x40-0x7E的GBK字符有一定特殊性,因為這些字符佔用了ASCII碼的位置,這樣會給一些系統帶來麻煩。
有些系統中用0x40-0x7E中的字符(如“|”)做特殊符號,在定位這些符號時又沒有判斷這些符號是不是屬於某個 GBK字符的低字節,這樣就會造成錯誤判斷。在支持GB2312的環境下就不存在這個問題。需要注意的是支持GBK的環境中小於0x80的某個字節未必就 是ASCII符號......
編碼類型都有哪些除了UTF
1ASCII
2編碼
3MBCS
4GB2312
5GBK
6Big5
7Unicode(UTF-16)
8UTF-8
9Base64
視頻的編碼方式有哪些?與格式一樣嗎?
很多啊,常見的有MPEG系列的編碼方式(當然,也包括很多子類如MPEG-1、MPEG-2、AVC(H264)、DivX、vidx等)real的RV40。還有WMV2。總之很多啦。與之相對應的格式也是不一樣的。 MPEG-1對應的格式是dat也就是傳說中的VCD。那MPEG-2對應的格式VOB就是傳說中的DVD嘍。MPEG-4(AVC。DivX什麼的都是他的手下)對應的是AVI(mp4好像也是)。RV40對應的自然是RMVB呼啦的。至於WMV2,對應的就是WMV唄。 現在視頻格式沒有硬性的規範,很亂,這也是各類播放器需要很多解碼器的原因(對付那麼多不同規格的視頻耶)
漢字字形編碼有哪兩種類型?各有什麼特點?
漢字編碼分為外碼、交換碼、機內碼和字形碼。
1.外碼(輸入碼)
外碼也叫輸入碼,是用來將漢字輸入到計算機中的一組鍵盤符號。目前常用的輸入碼有拼音碼、五筆字型碼、自然碼、表形碼、認知碼、區位碼和電報碼等,一種好的編碼應有編碼規則簡單、易學好記、操作方便、重碼率低、輸入速度快等優點,每個人可根據自己的需要進行選擇。在後面的章節中,重點介紹智能全拼輸入法和五筆字型輸入法。
2.交換碼(國標碼)
計算機內部處理的信息,都是用二進制代碼表示的,漢字也不例外。而二進制代碼使用起來是不方便的,於是需要採用信息交換碼。中國標準總局1981年制定了中華人民共和國國家標準GB2312--80《信息交換用漢字編碼字符集--基本集》,即國標碼。
區位碼是國標碼的另一種表現形式,把國標GB2312--80中的漢字、圖形符號組成一個94×94的方陣,分為94個“區”,每區包含94個“位”,其中“區”的序號由01至94,“位”的序號也是從01至94。94個區中位置總數=94×94=8836個,其中7445個漢字和圖形字符中的每一個佔一個位置後,還剩下1391個空位,這1391個位置空下來保留備用。
3.機內碼
根據國標碼的規定,每一個漢字都有了確定的二進制代碼,在微機內部漢字代碼都用機內碼,在磁盤上記錄漢字代碼也使用機內碼。
4.漢字的字形碼
字形碼是漢字的輸出碼,輸出漢字時都採用圖形方式,無論漢字的筆畫多少,每個漢字都可以寫在同樣大小的方塊中。通常用16×16點陣來顯示漢字。
多媒體編碼方法有哪些
算術編碼在圖像數據壓縮標準(如JPEG,JBIG)中扮演了重要的角色。在算術編碼中,消息用0到1之間的實數進行編碼,算術編碼用到兩個基本的參數:符號的概率和它的編碼間隔。信源符號的概率決定壓縮編碼的效率,也決定編碼過程中信源符號的間隔,而這些間隔包含在0到1之間。編碼過程中的間隔決定了符號壓縮後的輸出。算術編碼器的編 碼過程可用下面的例子加以解釋。 [例4.2] 假設信源符號為{00, 01, 10, 11},這些符號的概率分別為{ 0.1, 0.4, 0.2, 0.3 },根據這些概率可把間隔[0, 1)分成4個子間隔:[0, 0.1), [0.1, 0.5), [0.5, 0.7), [0.7, 1),其中表示半開放間隔,即包含不包含。上面的信息可綜合在表4-04中 。 表4-04 信源符號,概率和初始編碼間隔 符號 00 01 10 11 概率 0.1 0.4 0.2 0.3 初始編碼間隔 初始編碼間隔 [0, 0.1) [0.1, 0.5) [0.5, 0.7) [0.7, 1) 如果二進制消息序列的輸入為:10 00 11 00 10 11 01。編碼時首先輸入的符號是10, 找到它的編碼範圍是[0.5, 0.7)。由於消息中第二個符號00的編碼範圍是[0, 0.1),因 此它的間隔就取[0.5, 0.7)的第一個十分之一作為新間隔[0.5, 0.52)。依此類推,編碼 第3個符號11時取新間隔為[0.514, 0.52),編碼第4個符號00時,取新間隔為[0.514, 0 .5146),… 。消息的編碼輸出可以是最後一個間隔中的任意數。整個編碼過程如圖4-0 3所示。 圖4-03 算術編碼過程舉例 這個例子的編碼和譯碼的全過程分別表示在表4-05和表4-06中。根據上面所舉的例子, 可把計算過程總結如下。 考慮一個有M個符號的字符表集,假設概率,而。輸入符號用表示,第個子間隔的範圍用 表示。其中,和,表示間隔左邊界的值, 表示間隔右邊界的值,表示間隔長度。編碼步 驟如下: 步驟1:首先在1和0之間給每個符號分配一個初始子間隔,子間隔的長度等於它的概率, 初始子間隔的範圍用[,)表示。令,和。 步驟2:L和R的二進制表達式分別表示為: 和 其中和等於“1”或者“0”。 比較和:①如果,不發送任何數據,轉到步驟3;②如果,就發送二進制符號。 比較和:①如果,不發送任何數據,轉到步驟3;②如果,就發送二進制符號。 … 這種比較一直進行到兩個符號不相同為止,然後進入步驟3, 步驟3:加1,讀下一個符號。假設第個輸入符號為,按照以前的步驟把這個間隔分成如 下所示的子間隔: 令,和,然後轉到步驟2。 表4-05 編碼過程 步驟 輸入 符號 編碼間隔 編碼判決 1 10 [0.5, 0.7) 符號的間隔範圍[0.5, 0.7) 2 00 [0.5, 0.52) [0.5, 0.7)間隔的第一個1/10 3 11 11 [0.514, 0.52) [0.5, 0.52)間隔的最後一個1/10 4 00 [0.514, 0.5146) [0.514, 0.52)間隔的第一個1/10 5 10 [0.5143, 0.51442) [0.514, 0.5146)間隔的第五個1/10開始,二個1/10 6 11 [0.514384, 0.51442) [0.5143, 0......
計算機文件的編碼都有哪些
編碼很多.... 二進制編碼,數據文件一般都用這個格式.當然,還會使用一些加密方式. ASCII,主要是字母,字符 GB2312,簡體漢字. GBK,Windows 95就是以GBK為內碼,又由於GBK同時也涵蓋了Unicode所有CJK漢字. BIG5,又稱為大五碼或五大碼,是使用繁體中文(正體中文)社群中最常用的電腦漢字字符集標準,共收錄13060個漢字. UTF8,UTF16,UTF32,寫網頁的時候常用. 主要就是這些.
視頻文件編碼類型有哪些?
*.AVI
AVI是音頻視頻交錯(Audio Video Interleaved)的英文縮寫。這個東西的好處嘛,無非是兼容好、調用方便、圖象質量好,但缺點也是比較突出的,那就是文件體積過於龐大。
*.MPEG/.MPG/.DAT
MPEG是Motion Picture Experts Group 的縮寫。這個家族中包括了 MPEG-1, MPEG-2 和 MPEG-4在內的多種視頻格式 .MPEG-1是大家接觸得最多的了,因為目前其正在被廣泛地應用在 VCD 的製作和一些視頻片段下載的網絡應用上面,可以說 99% 的 VCD 都是用 MPEG1 格式壓縮的,使用 MPEG-1 的壓縮算法,可以把一部 120 分鐘長的電影(未壓縮視頻文件)壓縮到 1.2 GB 左右大小。MPEG-2 則是應用在 DVD 的製作(壓縮)方面,同時在一些 HDTV(高清晰電視廣播)和一些高要求視頻編輯、處理上面也有相當的應用面。使用 MPEG-2 的壓縮算法壓縮一部 120 分鐘長的電影(未壓縮視頻文件)可以到壓縮到 4 到 8 GB 的大小(當然,其圖象質量等性能方面的指標 MPEG-1 是沒得比的)。
*.RA/RM
“*.RM”文件隨著網絡技術的蓬勃發展,這種新型的流式視頻文件格式已經很有替代傳統視頻格式的氣勢,而它不過是RealNetworks公司所制定的音頻/視頻壓縮規範RealMedia中的一種,RealPlayer能做的就是利用Internet資源對這些符合RealMedia技術規範的音頻/視頻進行實況轉播。RealMedia是目前Internet上最流行的跨平臺的客戶/服務器結構多媒體應用標準,其採用音頻/視頻流和同步回放技術實現了網上全帶寬的多媒體回放。在RealMedia規範中主要包括三類文件:RealAudio(用以傳輸接近CD音質的音頻數據)、RealVideo(用來傳輸連續視頻數據)和RealFlash (RealNetworks公司與Macromedia公司合作推出的新一代高壓縮比動畫格式)。而RealPlayer就是在網上收聽收看這些實時音頻、視頻和Flash的最佳工具。只要用戶的線路允許,使用RealPlayer可以不必下載音頻/視頻內容就能實現網絡在線播放,更容易地上網查找和收聽、收看各種廣播、電視,而且最新的REALPLAY版本中還新增了AOL Internet Messenger 和 RealJukebox兩項管理功能,使該軟件的工體表現更為完善。REAL VIDEO (RA、RAM)格式由一開始就是定位就是在視頻流應用方面的,也可以說是視頻流技術的始創者。它可以在用 56K MODEM 撥號上網的條件實現不間斷的視頻播放,當然,其圖象質量和 MPEG2、DIVX 等比是不敢恭維的啦。
*.MOV/.QT
玩電腦的朋友恐怕少有不知QuickTime大名的。QuickTime屬於個人電腦上的舶來之物,原本是Apple公司用於其Mac計算機的一種圖像及視頻處理軟件。Mac在圖像和視頻處理領域的地位盡人皆知,在PC機還在黑白DOS時代苦苦摸索之際,Mac機就已經“WINDOWS”大開了。作為處理圖像及數字視頻的系統結構,Quick-Time提供了兩種標準圖像和數字視頻格式,即可以支持靜態的*.PIC和*.JPG圖像格式,動態的基於Indeo壓縮法的*.MOV和基於MPEG壓縮法的*.MPG視頻格式。到目前為止,......