字元編碼與解碼

2022-09-08 12:54:10 字數 1489 閱讀 6648

# 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...