爬蟲中的關於字串的一些理解

2022-08-14 01:42:12 字數 1558 閱讀 6562

1.基本概念

字元(character)是各種文字和符號的總稱,包括各國家文字、標點符號、圖形符號、數字等

字符集(character set)是多個字元的集合

字符集包括:ascii字符集、gb2312字符集、gb18030字符集、unicode字符集等

ascii編碼是1個位元組,而unicode編碼通常是2個位元組。

utf-8是unicode的實現方式之一,utf-8是它是一種變長的編碼方式,可以是1,2,3個位元組

2.python3中的字串

python3中兩種字串型別

1.str:unicode的呈現形式

2.bytes: 位元組型別,網際網路上的資料都是以二進位制的方式(位元組型別)傳輸的

使用方法:

1.str使用encode方法轉化為bytes

2.bytes通過decode轉化為str

注意:編碼方式與解碼方式必須一樣,否則就會出現亂碼

3.python2中的字串

python2中字串有兩種型別

1.unicode型別

2.位元組型別

在python2中,字串無法完全地支援國際字符集和unicode編碼。為了解決這種限制,python2對unicode資料使用了單獨的字串型別。要輸入unicode字串,要在第乙個引號前加上'u'。

python2中普通字串實際上就是已經編碼(非unicode)的位元組字串

3.1.python2中的位元組型別字串

python2 中定義字串的時候,會自動將字串轉換為合適編碼的位元組字串,比如中文:自動轉換為utf-8編碼的位元組字串

舉個例子(linux終端,預設終端的編碼utf-8):

>>> a = "你好"  #如此定義字串的時候,其為位元組型別

>>> a

'\xc4\xe3\xba\xc3'

>>> type(a)

上面的這種定義方式和在字串前面加上b的效果一樣,可以對其解碼,轉化為str型別

>>> c =b"你好"

>>> c

'\xe4\xbd\xa0\xe5\xa5\xbd'

>>> type(a)

>>> c.decode("utf-8")

u'\u4f60\u597d'

3.2 python2中的unicode型別 

如果需要定義unicode字串,即非位元組型別的字串的時候需要在前面加上『u』

>>> e = u"你好"

>>> e

u'\u4f60\u597d'

>>> type(e)

>>> e.encode('utf-8')

'\xe4\xbd\xa0\xe5\xa5\xbd'

3.3 python2中位元組型別和uicode型別的轉化

1.位元組型別通過decode轉化為unicode型別

2.unicode型別通過很encode方法轉化為位元組型別

3.方法的使用和python3相同,但是在方法中預設的編碼解碼方式為ascii,對中文需要手動指定為utf-8

關於字串的一些。。。

首先呼叫這些函式需要使用標頭檔案include 1 des src abcd xyz abcdxyz char mystrcat char des,const char src 字串連線 2 字串比較 0,0,0 int mystrcmp const char str1,const char str...

一些關於字串的函式

函式名 stpcpy 功 能 拷貝乙個字串到另乙個 用 法 char stpcpy char destin,char source 程式例 include include int main void 函式名 strcat 功 能 字串拼接函式 用 法 char strcat char destin,...

關於字串的一些方法

substring public string substring int beginindex 返回乙個新的字串,它是此字串的乙個子字串。該子字串始於指定索引處的字元,一直到此字串末尾。example string str abcdefg str str.substring 2 system.ou...