計算機是美國人發明的,因此,最早只有127個字元被編碼到計算機裡,也就是大小寫英文本母、數字和一些符號,這個編碼表被稱為ascii編碼,比如大寫字母a的編碼是65,小寫字母z的編碼是122。
但是要處理中文顯然乙個位元組是不夠的,至少需要兩個位元組,而且還不能和ascii編碼衝突,所以,中國制定了gb2312編碼,用來把中文編進去。
全世界有上百種語言,日本把日文編到shift_jis裡,南韓把韓文編到euc-kr裡,各國有各國的標準,結果就是,在多語言混合的文字中,顯示出來會有亂碼。
unicode標準也在不斷發展,但最常用的是用兩個位元組表示乙個字元(如果要用到非常偏僻的字元,就需要4個位元組)。現代作業系統和大多數程式語言都直接支援unicode。
現在,捋一捋ascii編碼和unicode編碼的區別:ascii編碼是1個位元組,而unicode編碼通常是2個位元組。
新的問題又出現了:如果統一成unicode編碼,亂碼問題從此消失了。但是,如果你寫的文字基本上全部是英文的話,用unicode編碼比ascii編碼需要多一倍的儲存空間,在儲存和傳輸上就十分不划算。
所以,本著節約的精神,又出現了把unicode編碼轉化為「可變長編碼」的utf-8
編碼。utf-8編碼把乙個unicode字元根據不同的數字大小編碼成1-6個位元組,常用的英文本母被編碼成1個位元組,漢字通常是3個位元組,只有很生僻的字元才會被編碼成4-6個位元組。如果你要傳輸的文字包含大量英文本元,用utf-8編碼就能節省空間。
佔位符:
%
運算子就是用來格式化字串的。在字串內部,%s
表示用字串替換,%d
表示用整數替換,有幾個%?
佔位符,後面就跟幾個變數或者值,順序要對應好。如果只有乙個%?
,括號可以省略。
uriurl 的區別 :
uri 是從虛擬根路徑開始的
url是整個鏈結
如url
uri 是/question/68016373.html
常用url編碼表
%0a:linefeed(換行),很多手機url編碼後會自動在句末新增%0a,後端會無法識別導致報錯,因此需要把它去掉。
%20:space(空格)
只有
字母:a -> z、a -> z
數字:0 -> 9
特殊符號:$-_.+!*'(),
以及某些保留字,
才可以不經過編碼直接用於 url。
編碼通俗解釋
很久很久以前,有一群人,他們決定用8個可以開合的電晶體來組合成不同的狀態,以表示世界上的萬物。他們看到8個開關狀態是好的,於是他們把這稱為 位元組 再後來,他們又做了一些可以處理這些位元組的機器,機器開動了,可以用位元組來組合出很多狀態,狀態開始變來變去。他們看到這樣是好的,於是它們就這機器稱為 計...
onehot編碼解釋
one hot編碼,又稱為一位有效編碼,主要是採用n位狀態暫存器來對n個狀態進行編碼,每個狀態都由他獨立的暫存器位,並且在任意時候只有一位有效。one hot編碼是分類變數作為二進位制向量的表示。這首先要求將分類值對映到整數值。然後,每個整數值被表示為二進位制向量,除了整數的索引之外,它都是零值,它...
編碼和解碼通俗解釋
在記憶體中,本來沒有字元的概念,每個位元組都是乙個0 255的數字。我們把數字進行編號,每個數字代表乙個字元。追根溯源,以ascii碼為例。比如65 十進位制 定義為字元 a 66定義為 b 61定義為 這就是編碼。然後才有了char型定義,實際上等同於byte,只是使用char型時就知道要表示的是...