1. 程式人生 > >python基礎知識之字符編碼

python基礎知識之字符編碼

轉換成 聲明 一行 p12 python3 添加 源文件 屏幕 字體

  字節與字符:計算機存儲的數據,不管是文本、音頻、視頻、軟件等都是以二進制文件保存,二進制一個字節序列為8個byte位。而字符是顯示在屏幕上的一個英文字母、標點等。

  編碼與解碼:將編輯器內打開看到的一個個字符保存在磁盤時是以二進制字節序列形式保存起來的,從字符到字節的轉換叫做編碼(encode),從字節到能顯示的字符叫解碼(decode)。

  python3編碼問題:默認情況下,Python源文件以UTF-8編碼。在這種編碼中,世界上大多數語言的字符可以同時在字符串文字、標識符和註釋中使用——盡管標準庫只使用ASCII字符作為標識符,這是任何可移植代碼都應該遵循的約定。為了正確地顯示所有這些字符,您的編輯器必須認識到該文件是UTF-8,並且必須使用支持文件中所有字符的字體。要聲明除默認值之外的編碼,應該添加一條特殊的註釋行作為文件的第一行。其語法如下:# -*- coding: encoding -*- 。p

ython庫codecs支持編碼,比如,當想要使用Windows-1252字體時,我們可以在代碼第一行加上:# -*- coding:cp1252 -*-

  encode與decode函數的使用:在python3中,文本字符與二進制數據分別用str和bytes表示。在字符引號前加b標記,就能申明一個bytes類型對象,bytes類型可以用ASCII範圍內的字符和其他十六進制形式字符表示,但不能用中文等非ASCII字符表示。由於網絡數據傳輸時一般是bytes,因此進行可以用encode函數將str類型轉換成bytes類。如:

  str1=‘你好’

  bytes1=str1.encode(‘utf-8’)

  同理,亦可以用decode函數將bytes轉換成str。亦可以用bytes(str1,‘utf-8’)來轉換。

python基礎知識之字符編碼