# ascii碼:英文本母、數字、特殊字元# 擴充套件ascii碼:ascii碼的擴充套件,增加了拉丁文
# gb2312:對ascii的中文擴充套件。簡體中文的字符集編碼。包含7000多漢字
# gb18030和gbk:gbk是對gb2312的擴充套件,包括了gb2312所有內容,增加近2萬漢字和符號
# unicode編碼:萬國編碼,國際組織制定的可以容納世界上所有文字和符號的字元編碼方案
# utf-8:unicode的擴充套件,可變長度字元,英文用乙個位元組,漢字用兩個位元組,比unicode節省空間。推薦的編碼
# 獲取系統預設編碼
import sys
print("預設字符集:",sys.getdefaultencoding())
#由於已經是utf8,所以不用解碼就可轉換成其它編碼型別。unicode與utf8之間不用轉換
#各個編碼的互相轉換都要先轉換成unicode(utf-8),然後轉換成想要的編碼
#編碼只轉換漢字和中文標點,字母數字英文標點不轉換
#編碼是將明文或utf8轉成其它型別
#解碼是將非utf8轉成utf8
str = '學習python3.5'
#對變數str編碼成gbk
str_gbk = str.encode('gbk')
print('gbk:',str_gbk)
#對gbk型別——》解碼成明文——》編碼成gb2312
#所有的decode都會解碼成unicode型別
str_gb2312 = str_gbk.decode('gbk').encode('gb2312')
print('gb2312:',str_gb2312)
#對gb2312型別——》解碼成明文——》編碼成utf8
str_utf8 = str_gb2312.decode('gb2312').encode('utf8')
print('utf-8:',str_utf8)
#\x表示後面是十六進製制, \xe4\xb8\xad即是二進位制的 11100100 10111000 10101101
str_gb2312 = str_utf8.decode('utf8').encode('gb2312')
print("又轉回gb2312",str_gb2312)
str_utf8 = str_gb2312.decode('gb2312').encode('utf8')
print("現在是utf8:",str_utf8)
#在linux中編寫python指令碼時,為支援中文,應在首行新增:
# #!/usr/bin/env python
# #-*- coding:gbk -*- 將檔案編碼宣告成gbk(但變數預設還是utf8)
# #! -*- coding:utf-8 -*- 將檔案編碼宣告成utf8
#或者:
# #!/usr/bin/env python
# # coding=utf-8
Java 字元編碼與解碼
1 字元編碼的發展歷程 ascii 碼 因為計算機只認識數字,所以我們在計算機裡面的一切資料都是以數字來表示,因為英文本元有限,所以規定使用的位元組的最高位是 0,每乙個位元組都是以 0 127 之間的數字來表示。比如 a 對應 65,a 對應 97。這便是 美國標準資訊交換碼,ascii stri...
字元的編碼與解碼
ascii碼 7bit表示乙個字元,共計128個字元 iso 8859 1 8bit表示乙個字元,乙個位元組 byte 表示乙個字元,共計256個字元 gb2312 簡體中文的國標碼,2個位元組表示乙個漢字,包含常見中文 gbk 擴充套件了gb2312 gb18030 中文最全的 big5 正體中文...
is 編碼與解碼
is 和 主要是數字和字串的比較 1 區別 比較的是兩邊的值 is比較的是兩邊值的id id獲取的方法 id 2 小資料池 5 256 3 字串中特殊字元有id不同 4 字串中單個字元 20以內,記憶體位址是一樣的 21以上記憶體位址不一致 編碼與解碼 1 encode a 把明文編譯成a格式 de...