字元編碼 牛鼓簧

2022-09-23 06:39:08 字數 2248 閱讀 2354

字元編碼

一、基礎知識

應用程式任何操作硬體的請求都需要向作業系統發起系統呼叫,然後由作業系統去操作硬體。

二、文字編輯器訪問檔案的原理

1、開啟編輯器就啟動了乙個程序,是在記憶體中的,所以,用編輯器編寫的內容也都是存放在記憶體中,斷電後資料丟失。

2、想要永久儲存就需要點選儲存按鈕,編輯器把記憶體的資料刷到硬碟上。

三、python直譯器執行py檔案的原理,例如python

#第一階段:python直譯器啟動,此時就相當於啟動了乙個文字編輯器

#第二階段:python直譯器相當於文字編輯器,去開啟test.py檔案,從硬碟上將test.py的檔案內容讀入到記憶體中(小複習:pyhon的解釋性,決定了直譯器只關心檔案內容,不關心檔案字尾名)

#第三階段:python直譯器解釋執行剛剛載入到記憶體中test.py的**( ps:在該階段,即真正執行**時,才會識別python的語法,執行檔案內**,當執行到name="egon"時,會開闢記憶體空間存放字串"egon")

四、總結python直譯器與文字檔案編輯的異同

#1、相同點:python直譯器是解釋執行檔案內容的,因而python直譯器具備讀py檔案的功能,這一點與文字編輯器一樣

#2、不同點:文字編輯器將檔案內容讀入記憶體後,是為了顯示或者編輯,根本不去理會python的語法,而python直譯器將檔案內容讀入記憶體後,可不是為了給你瞅一眼python**寫的啥,而是為了執行python**、會識別python語法。

字元編碼介紹

一、什麼是字元編碼

字元-------(翻譯)------數字

定義:這個過程實際就是乙個字元如何對應乙個特定數字的標準,這個標準稱之為字元編碼。

二、編碼種類介紹

ascii使用乙個位元組代表乙個字元

unicode常用兩個位元組代表乙個字元,生僻字用四個位元組,相容所有的編碼

utf-8可變長編碼

三、總結字元編碼的發展

#階段一:現代計算機起源於美國,最早誕生也是基於英文考慮的ascii

ascii:乙個bytes代表乙個字元(英文本元/鍵盤上的所有其他字元),1bytes=8bit,8bit可以表示0-2**8-1種變化,即可以表示256個字元

ascii最初只用了後七位,127個數字,已經完全能夠代表鍵盤上所有的字元了(英文本元/鍵盤的所有其他字元),後來為了將拉丁文也編碼進了ascii表,將最高位也占用了

#階段二:為了滿足中文和英文,中國人定製了gbk

gbk:2bytes代表乙個中文字元,1bytes表示乙個英文本元

為了滿足其他國家,各個國家紛紛定製了自己的編碼

日本把日文編到shift_jis裡,南韓把韓文編到euc-kr裡

#階段三:各國有各國的標準,就會不可避免地出現衝突,結果就是,在多語言混合的文字中,顯示出來會有亂碼。如何解決這個問題呢???

#!!!!!!!!!!!!非常重要!!!!!!!!!!!!

說白了亂碼問題的本質就是不統一,如果我們能統一全世界,規定全世界只能使用一種文字元號,然後統一使用一種編碼,那麼亂碼問題將不復存在,

ps:就像當年秦始皇統一中國一樣,書同文車同軌,所有的麻煩事全部解決

很明顯,上述的假設是不可能成立的。很多地方或老的系統、應用軟體仍會採用各種各樣的編碼,這是歷史遺留問題。於是我們必須找出一種解決方案或者說編碼方案,需要同時滿足:

#1、能夠相容萬國字元

#2、與全世界所有的字元編碼都有對映關係,這樣就可以轉換成任意國家的字元編碼

這就是unicode(定長), 統一用2bytes代表乙個字元, 雖然2**16-1=65535,但unicode卻可以存放100w+個字元,因為unicode存放了與其他編碼的對映關係,準確地說unicode並不是一種嚴格意義上的字元編碼表,**pdf來檢視unicode的詳情:

鏈結:很明顯對於通篇都是英文的文字來說,unicode的式無疑是多了一倍的儲存空間(二進位制最終都是以電或者磁的方式儲存到儲存介質中的)

於是產生了utf-8(可變長,全稱unicode transformation format),對英文本元只用1bytes表示,對中文字元用3bytes,對其他生僻字用更多的bytes去存

#總結:記憶體中統一採用unicode,浪費空間來換取可以轉換成任意編碼(不亂碼),硬碟可以採用各種編碼,如utf-8,保證存放於硬碟或者基於網路傳輸的資料量很小,提高傳輸效率與穩定性。

!!!重點!!!

總結記憶體中的編碼固定使用unicode

unicode--->encode----->utf-8

utf-8----->decode----->unicode

字元編碼 unicode編碼

1.ascii american standard code for information interchange 美國資訊交換標準 這是計算機上最早使用的通用的編碼方案。那個時候計算機還只是拉丁文本的專利,根本沒有想到現在計算機的發展勢頭,如果想到了,可能一開始就會使用unicode了。當時絕大...

A 字元編碼

請將一串長度為5的純字母文字譯成乙個密碼,密碼規律如下 用原來的字母後面的第4個字母代替原來的字母。如c用g代替 文字中不存在w w x x y y z z等字母 最後得到的文字即為密碼。輸入一串文字,長度固定為5。輸出對應的密碼。格式為 password is 密碼 input chinaoutp...

牛客網 geohash編碼

geohash編碼 geohash常用於將二維的經緯度轉換為字串,分為兩步 第一步是經緯度的二進位制編碼,第二步是base32轉碼。此題考察緯度的二進位制編碼 演算法對緯度 90,90 通過二分法進行無限逼近 取決於所需精度,本題精度為6 注意,本題進行二分法逼近過程中只採用向下取整來進行二分,針對...