1、ascii
ascii(american standard code for information interchange,美國標準資訊交換**)是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其他西歐語言,其最多只能用 8 位來表示(乙個位元組),即:2**8 = 256-1,所以,ascii碼最多只能表示 255 個符號,python2.x直譯器預設是ascii編碼。
顯然ascii碼無法將世界上的各種文字和符號全部表示,所以,就需要新出一種可以代表所有字元和符號的編碼,即:unicode
二進位制和數字轉換:128 64 32 16 8 4 2 1 比如:2表示二進位制 0000 0010
字元和數字轉換 : 檢視ascii碼表 比如: a字母 表示數字是65,二進位制是0100 0001
2、unicode
unicode(統一碼、萬國碼、單一碼)是一種在計算機上使用的字元編碼。unicode 是為了解決傳統的字元編碼方案的侷限而產生的,它為每種語言中的每個字元設定了統一並且唯一的二進位制編碼,規定所有的字元和符號最少由 16 位來表示(2個位元組),即:2 **16 = 65536,注:此處說的的是最少2個位元組,可能更多,比如漢字就需要3個位元組,python3.x直譯器預設是unicode編碼。
3、utf-8
是對unicode編碼的壓縮和優化,他不再使用最少使用2個位元組,而是將所有的字元和符號進行動態分類:ascii碼中的內容用1個位元組儲存、歐洲的字元用2個位元組儲存,漢字用3個位元組儲存...
所以,python2.x直譯器在載入 .py 檔案中的**時,會對內容進行編碼(預設ascii),如果是如下**的話:
報錯:ascii碼無法表示中文
tomcat@node:~$ vim a.py改正:應該顯示的告訴python直譯器,用什麼編碼來執行源**,即:#!/usr/bin/env python
"你好!世界
"tomcat@node:~$ python a.py
file
"a.py
", line 2syntaxerror: non-ascii character '
\xe4
'in file a.py on line 2, but no encoding declared; see for details
tomcat@node:~$ vi a.py注意:python3.x中字符集預設為utf-8#!/usr/bin/env python
#coding:utf-8
"你好!世界
"tomcat@node:~$ python a.py
你好!世界
python2.x還是ascii所以需要設定#coding:utf-8
字元編碼總結:
python基礎4 字元編碼
python基礎 字元編碼 一 了解字元編碼 1.文字編輯器訪問檔案的原理 nodepad pycharm,word 開啟編輯器就開啟了啟動了乙個程序,是在記憶體中的,所以在編輯器編寫的內容也都是存放與記憶體中的,斷電後資料丟失 因而需要儲存到硬碟上,點選儲存按鈕,就從記憶體中把資料刷到了硬碟上。在...
python基礎12 字元編碼
字元編碼 字符集和字元編碼一般都是成對出現的,如ascii ios 8859 1 gb2312 gbk,都是即表示了字符集又表示了對應的字元編碼。unicode比較特殊,有多種字元編碼 utf 8,utf 16等 ascii american standard code for informatio...
Python零基礎入門 基礎(六) 字元編碼
python直譯器在載入 py 檔案中的 時,會對內容進行編碼 預設ascill ascii american standard code for information interchange,美國標準資訊交換 是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其他西歐語言,其最多只能用 8...