多條告白如次劇本只需引入一次
最早的字符串源代碼是美利堅合眾國規(guī)范消息調(diào)換碼,即ASCII碼,他僅對10個數(shù)字,26個小寫英筆墨母、26個小寫英筆墨母及少許其余標記舉行了源代碼。ASCII碼最多只能表白256個標記,每個標記占一個字節(jié)。跟著消息本領(lǐng)的興盛,列國筆墨都須要舉行源代碼,所以展示了GBK、GB2312、UTF-8源代碼等。個中GBk和GB2312是我國擬訂的華文源代碼規(guī)范,運用一個字節(jié)表白英筆墨母,2個字節(jié)表白中筆墨符。而UTF-8是我國通用的源代碼,對全寰球一切國度用到的字符都舉行了源代碼。UTF-8沿用一個字節(jié)表白英筆墨符、3個字節(jié)表白華文。在Python3.X中。默許沿用的源代碼***為UTF-8,沿用這種源代碼靈驗地處置了華文亂碼的題目。
在Python中,有兩種常用的字符串典型,辨別是str和bytes。個中str表白Unicode字符(ASCII碼大概其余)bytes表白二進制數(shù)據(jù)(囊括源代碼的文本)。這兩種典型的字符串不許拼接在一道運用。常常情景下,str在外存中以Unicode表白,一個字符對應(yīng)諾干個字節(jié)。然而即使在搜集上傳輸,大概生存到磁盤上,就須要把str變換為字節(jié)典型,即bytes典型。
注:bytes典型的數(shù)據(jù)時帶有b前綴的字符串(用單引號大概雙引號表白)比方b’xd2xb0’和’bmr’都是bytes典型的數(shù)據(jù)。
str典型和bytes典型之間不妨經(jīng)過encode()和decode()本領(lǐng)舉行變換,這兩個本領(lǐng)是互逆的進程。
1.運用encode()本領(lǐng)源代碼
encode()本領(lǐng)為str東西本領(lǐng),用來將字符串變換為二進制數(shù)據(jù)(即bytes)也稱為源代碼,其語法***如次:
str.encode([encoding="utf-8"][,errors="strict"])參數(shù)證明:str:表白要舉行變換的字符串encoding="utf-8":可選參數(shù),用來指定舉行轉(zhuǎn)碼時沿用的字符源代碼,默許為UTF-8,即使想運用簡體華文,也不妨樹立為gb2312。當惟有一個參數(shù)時,也可簡略前方的encoding=,徑直寫源代碼。errors="strict":可選參數(shù),用來指定缺點處置辦法,其可選址值strict(遇到不法字符就拋出特殊)ignore(忽視不法字符)、replace(用?替代不法字符)或xmlcharrefreplace(運用xml的字符援用)等,默許為strict。注:在運用encode()本領(lǐng)時,不會竄改原字符串,即使須要竄改原字符串,須要對其舉行從新賦值。
比方:
verse='野渡無人舟自橫'byte=verse.encode('GBK')print('原字符串:',verse)print('變換后:',byte)2.運用decode()本領(lǐng)
decode()本領(lǐng)為bytes東西的本領(lǐng),用來將二進制變換為字符串,行將運用encode()本領(lǐng)變換的截止再變換為字符串,也稱為“解碼”,語法***如次:
bytes.decode([encoding="utf-8"][,errors="strict"])參數(shù)證明:bytes:表白要舉行轉(zhuǎn)為二進%e