密碼至少8個字符舉例
關注:221 發布時間:2021-11-30 09:00:03
為什么 string 要設計成 final ,又如何設計一個不可變類呢?留下了一個編碼相關的問題。在java中,一個字符(漢字字母)理論上占用兩個字節。但在utf-8,新字符串(“單詞”)。getbytes。length返回3,這意味著3個字節。你知道為什么嗎?java中char占用多少字節?
在回答這個問題之前,我們先學習一些基礎知識。
什么是字符集?什么是編碼?
字符(character )是文字與符號的總稱,包括文字、圖形符號、數學符號等。 一組抽象字符的集合就是字符集(charset )。
之所以說“抽象”,是因為這里說的人物是沒有具體形式的人物。比如文章里看到的“韓”這個人物,其實就是這個人物的一個具體表現,就是它的形象表現。當人們讀“韓”這個詞時,他們使用另一種具體的表現形式——聲音。但無論如何,這兩種表達方式指的是漢字,同一漢字可能有無數種表達方式(點陣、矢量法、音頻等)。).如果每個表達式中的相同字符包含在字符集內,會使字符集過大。對于因此抽象字符集中的字符,都是指唯*存在的抽象字符,而忽略了它的具體表現形式。在給定一個抽象字符集合中的每個字符都分配了一個整數編號之后,這個字符集就有了順序,就成為了編碼字符集。同時,這個編號,可以唯*確定到底指的是哪一個字符。,的同一個字符,不同字符集編碼系統指定的整數是不同的。例如,單詞“er”,在unicode中,它的數字是0x513f,這意味著它是unicode中的第一個0x513f字符。在另一個編碼字符集中,單詞是0xa449。
編碼字符集,指的是這種被分配了整數編號的字符集合,但是編碼字符集中字符被分配的整數編號,不一定就是該字符在計算機中存儲時所使用的值,計算機中存儲的字符到底使用什么二進制整數值來表示,由字符集編碼決定。
在字符集編碼決定了如何將一個字符的整數編號對應到一個二進制的整數值。,幾乎所有英文字符的字符集代碼中,英文字母的整數數字與計算機中存儲的二進制形式一致。但是有些編碼方法,比如適用于unicode字符集的utf-8,是將大量字符的整數進行轉換,存儲在計算機中。例如,“中文”的unicode值是0x6c49,但其編碼格式是utf-8,其值是0xe6b189 (3字節)。
編碼字符集里的每一個字符,都對應到唯*的一個代碼值,這些代碼值叫做碼點(code point ),可以看做是這個字符在編碼字符集里的序號,字符在給定的編碼方式下的二進制比特序列稱為碼元(code unit )。
注意:我們在這里引出了兩個概念,碼點和碼元。
為什么要區分字符集和編碼?
早期字符集和編碼是一對一的。字符編碼方案很多,一個字符集只有一種編碼實現,兩者一一對應。比如gb2312,在這種情況下,不管怎么稱呼,比如“gb2312代碼”和“gb2312字符集”,其實都是一樣的東西,本身也不一定有什么區別,反正不可能錯。
說到unicode,就不一樣了。唯*的unicode字符集對應于三種編碼:utf-8、utf-16和utf-32。字符集、編碼等概念完全分離、模塊化,在unicode時代得到廣泛認可。
1)字符集是字符集的簡稱,即字符集。
2)編碼是字符集編碼的簡稱,即字符集編碼。
從上圖可以清楚地看出,
1、編碼是依賴于字符集的,就像代碼中的接口實現依賴于接口一樣;
2、一個字符集可以有多個編碼實現,就像一個接口可以有多個實現類一樣。
為什么unicode這么特別?
想出一個新的字符集標準就是舊字符集字符不夠用。
unicode旨在統一所有字符集,包括所有字符,因此沒有必要編輯新的字符集。
但是如果你覺得它現有的編碼方案不是很好呢?在沒有新字符集的情況下,我們只能在編碼上做文章,所以實現很多,從而打破了傳統的一一對應。
從上圖可以看出,由于歷史原因,你也會看到unicode和utf-8在很多地方混在一起。這種情況下的unicode通常是utf-16或更早的ucs-2編碼。
關于unicode,我們已經談了很多。出于各種原因,必須承認,“unicode”一詞在不同的語境中有不同的含義。它可能指:
1)unicode 標準
2)unicode 字符集
3)unicode 的抽象編碼(編號),也即碼點( code point )
4)unicode 的一個具體編碼實現,通常即為變長的 utf-16,又或者是更早期的定長 16 位的 ucs-2。
在重點介紹下 utf-16 編碼,utf-16將unicode字符集的代碼點映射成一個16位整數序列(即長度為2字節的符號),用于數據存儲或傳輸。unicode字符的代碼點需要用一個或兩個16位符號來表示,所以這是一種可變長度的表示。
utf-16可視為ucs-2的父集。utf-16和ucs-2在沒有輔助平面字符之前的意思是一樣的(基本思想是用兩個16位代碼表示一個字符,只針對65535以上的字符)。引入輔助平面字符后,稱為utf-16。
現在,如果某些軟件聲稱支持ucs-2編碼,實際上意味著它不能支持utf-16中超過2字節的字符集。對于小于0x10000的ucs碼,utf-16編碼等于ucs碼。
為什么要重點介紹 utf-16 編碼,因為 java 的內碼使用的是 utf-16 編碼,也就是我們常說的 unicode 編碼。
沒想到這么長,只是介紹了字符集和編碼的區別。看來有必要分兩篇回答前一篇留下的問題。這篇文章的總結其實就是兩句話:
編碼字符集里的每一個字符規定的順序,叫碼點(code point ),而這個字符在編碼字符集里的序號,在給定的編碼方式下的二進制序列叫碼元(code unit )。
在爪哇,我們與外碼,即程序與外部交互時外部使用的字符編碼,有更多的接觸,但你不知道更多。我們期待下一期進入java的編碼,比較終回答上面提到的問題。
上一篇:知道收件人電話能查快遞嗎
下一篇:今天螞蟻莊園答案最新
猜你喜歡
-
史瓦西半徑公式推導55人支持
在很多電影場景中,史瓦西黑洞被描述為通向另一個維度的時間隧道,眼前的一切都會被這個宇宙吸塵器吸走,但這種描述讓它們更加神秘,更難被理解。但實際上黑洞因為屬性特征不同而被…
-
七情六欲是哪七情哪六欲?所說的世俗欲望是什么意思?我們常說“人皆有世俗之欲”。那么你一定注意到了,“怒”來自“惡”,“喜”來自“愛”,所以在“喜、怒、悲、喜”中加上“惡”…
-
小縣城創業15人支持
如今,互聯網對中國各行各業,尤其是終端零售業的影響很大,導致許多實體店轉型,要么專門做線上銷售,要么線上線下兼營,要么倒閉。這就是網絡經濟下實體經濟的現實。互聯網在一二線城…
-
男人準備分手的前奏33人支持
兩個人之間的愛是一段感情的開始。但是,誰也不能保證這份愛會長久。兩個人分手的原因有很多,可能是因為兩個人性格不同,觀點不同,家人不支持。如果一個女人見過一個真正愛自己的…
-
淘寶怎么刪除差評?怎么用鏈接刪除差評29人支持
今天我們要講的是刪除差評的技巧。我們都知道市場上刪差評的行業價格是c店200天貓300,那么他們是怎么做的呢?你真的有內部資源嗎?其實都是有套路的。那就說說這個套路吧,讓你少…
-
淘寶和京東哪個好22人支持
這個話題相信今天應該會有很多人問。如果網上購買,你會選擇淘寶還是jd。com?在網購大行其道的時代,各大網購平臺應運而生,而淘寶和京東不得不提。這兩個網購平臺可以說是當今網…
-
2021抖音走心很火的短句87人支持
第一,賺錢可以治百病,有錢可以治百病自卑。第二,見面總是猝不及防,離別總是蓄謀已久。總有一些人會慢慢淡出你的生活。你要學會接受,而不是錯過。第三,下雨的時候,我知道誰會給你打…
-
淘寶特價版退款紅包退回嗎44人支持
淘寶特別版是淘寶為了留住客戶而推出的版本。特別版的商品價格很便宜,所以還是有不少小伙伴會在上面買東西。那么,如果淘寶的特別版退了,優惠券還在嗎?有幾種情況。淘寶專版用優…
-
淘寶刷手機單流程13人支持
今天我給大家介紹一下淘寶刷單的內容。現在的消費者喜歡在手機上通過淘寶購物,而不是登錄官網瀏覽產品,所以刷手機單子很重要。下面分享一下淘寶刷手機榜的話。淘寶手機單用詞…
-
微信勿擾模式在哪104人支持
上次和你分享的10個微信小技巧,幫了很多朋友,所以今天我就向你透露10個微信隱藏功能。看完之后,不要懷疑自己用的是山寨微信。01*檢測真假朋友玩了這么多年微信,你肯定加了很多…
-
怎樣拉人進微信群38人支持
你手機里的流量是你的,我手機里的流量是我的,別人平臺上的流量是別人的。其實一個人會同時成為幾十甚至幾百人眼中的流量。流動的真相既是我的也是你的,但歸根結底是我們的,這取…
-
學平險是什么險種85人支持
薛平保險全稱“中小學生平安保險”,屬于人身意外傷害保險,針對中小學生特點。學生入學時往往是自愿投保的,被保險人只需繳納幾十元保費就可以獲得意外傷害、意外傷害醫療、住院…
熱門十大品牌
- 2021年我國十大黃金品牌排行榜31000人
- 眼鏡品牌十大排行榜前10名26362人
- 十大證券公司排行榜前10名23243人
- 2021年我國雜志排行榜前10名20056人
- 我國十大雜志排行榜前10名16359人
- 2021我國十個宜居城市排行榜前11487人
- 男士褲子品牌十大排行榜前10名11186人
- 2021十大火熱電腦游戲排行榜前11057人
- 十大衛生巾品牌排行榜前十名8849人
- 我國十大襪子品牌排行榜前十名8372人