由於本人在學習過程中,經常被不同類型的編碼折磨故學習總結了一波。現在最常見的是utf-8,同時在不同編輯器打開時utf-8的注釋會被翻譯成亂碼,所以讓我很苦惱,不說了,開始總結。
Unicode字符集
Unicode字符集(簡稱為UCS),國際標准組織於1984年4月成立ISO/IEC JTC1/SC2/WG2工作組,針對各國文字、符號進行統一性編碼。1991年美國跨國公司成立Unicode Consortium,並於1991年10月與WG2達成協議,采用同一編碼字集。目前Unicode是采用16位編碼體系,其字符集內容與 ISO10646的BMP(Basic Multilingual Plane)相同。Unicode於1992年6月通過DIS(Draf International Standard),目前版本V2.0於1996公布,內容包含符號6811個,漢字20902個,韓文拼音11172個,造字區6400個,保留 20249個,共計65534個。Unicode編碼后的大小是一樣的.例如一個英文字母 "a" 和 一個漢字 "好",編碼后都是占用的空間大小是一樣的,都是兩個字節!
UNICODE字符集有多個編碼方式,分別是UTF-8,UTF-16,UTF-32和UTF-7編碼。
UTF-8(最常用的字符集)
TF-8(8位元,Universal Character Set/Unicode Transformation Format)是針對Unicode的一種可變長度字符編碼。它可以用來表示Unicode標准中的任何字符,而且其編碼中的第一個字節仍與
UTF-8編碼規則:如果只有一個字節則取值為\x00-\x7F。其余字節按長度進行以下拓展:
UTF-8由4種編碼方式實現,即UTF8-1 / UTF8-2 / UTF8-3 / UTF8-4。
UTF-16
UTF-16是
編碼模式:UTF-16的大尾序和小尾序儲存形式都在用。一般來說,以Macintosh制作或儲存的文字使用大尾序格式,以Microsoft或Linux制作或儲存的文字使用小尾序格式。
UTF-16比起
base64(網絡傳輸)
Base64是網絡上最常見的用於傳輸8Bit
Base64編碼是從二進制到字符的過程,可用於在。采用Base64編碼具有不可讀性,需要解碼后才能閱讀。
Base64由於以上優點被廣泛應用於計算機的各個領域,然而由於輸出內容中包括兩個以上“符號類”字符(+, /, =),不同的應用場景又分別研制了Base64的各種“變種”。為統一和規范化Base64的輸出,Base62x被視為無符號化的改進版本。
Base64的索引與對應字符的關系如下表所示:
Java中實現Base64:
package com.first;
import org.junit.Test;
import java.io.UnsupportedEncodingException;
import java.util.Base64;
public class Test {
GBK字符集(與utf-8轉換時,中文會出現亂碼)
GBK編碼(Chinese Internal Code Specification)是中國大陸制訂的、等同於UCS的新的中文編碼擴展國家標准。gbk編碼能夠用來同時表示繁體字和簡體字,而gb2312只 能表示簡體字,gbk是兼容gb2312編碼的。GBK工作小組於1995年10月,同年12月完成GBK規范。該編碼標准兼容GB2312,共收錄漢字 21003個、符號883個,並提供1894個造字碼位,簡、繁體字融於一庫。Windows95/98簡體中文版的字庫表層編碼就采用的是GBK,通過 GBK與UCS之間一一對應的碼表與底層字庫聯系。 英文名:Chinese Internal Code Specification
-
中文名:漢字內碼擴展規范1.0版
-
雙字節編碼,GB2312-80的擴充,在碼位上和GB2312-80兼容
-
范圍:8140~FEFE(剔除xx7F)共23940個碼位
-
包含21003個漢字,包含了ISO/IEC 10646-1中的全部中日韓漢字
-
作用:它是GB2312的擴展,加入對繁體字的支持,兼容GB2312。
-
位數:使用2個字節表示,可表示21886個字符。
-
范圍:高字節從81到FE,低字節從40到FE。
ASCII
ASCII ((American Standard Code for Information Interchange): 美國信息交換標准代碼)是基於
常見ASCII碼的大小規則:0~9<A~Z<a~z。
1)數字比字母要小。如 “7”<“F”;
2)數字0比數字9要小,並按0到9順序遞增。如 “3”<“8” ;
3)字母A比字母Z要小,並按A到Z順序遞增。如“A”<“Z” ;
4)同個字母的大寫字母比小寫字母要小32。如“A”<“a” 。
幾個常見字母的ASCII碼大小: “A”為65;“a”為97;“0”為 48。
以上就是比較常見的字符編碼集,希望對大家有所幫助。
參考網址:
①https://www.cnblogs.com/happyday56/p/4135845.html
②https://blog.csdn.net/qq_20545367/article/details/79538530