python3預設編碼標準是 Python3 編碼

2021-10-11 12:37:21 字數 1167 閱讀 7128

python 3 編碼

文字總是 unicode,由 str 型別進行表示

二進位制資料使用 bytes 進行表示

encode() :編碼

decode():解碼

二進位制和字串之間的轉換

二進位制轉字串:decode('utf-8')

字串轉二進位制:encode('utf-8')

在python 3 中的編碼坑

在python3  中經常會碰到編碼問題 ,如 讀取小檔案 .read() ,使用爬蟲 ***.read(),經常會進行轉碼

最主要的是, 轉碼正確,因為系統操作環境不同,編譯器的不同,也會出現錯誤。如下面錯誤:

unicodeencodeerror: 'gbk' codec can't encode character '\u2022' in position 1489: illegal multibyte sequence

import urllib.request

import urllib.parse

url = ''

formdata ={

'start':0,

'limit':20,

data = urllib.parse.urlencode(formdata).encode('utf-8')

headers = {

req = urllib.request.request(url,data=data,headers=headers)

res = urllib.request.urlopen(req)

json = res.read().decode('utf-8') #或 str(res.read , 'utf-8')

print(json)

pycharm 顯示正常 , win7 cmd 確報錯,不列印,直接儲存檔案也正常

錯誤原因是 cmd 預設編碼是gbk ,需要改cmd預設編碼和win7 系統編碼

網上查了下 是因為print()函式自身有限制,不能完全列印所有的unicode字元,print()函式的侷限就是python預設編碼的侷限,因為系統是win7的,python的預設編碼不是'utf-8',改一下python的預設編碼成'utf-8'就行了

import sys

import io

#改變標準輸出的預設編碼

詳細內容可檢視:

python3編碼宣告 python3編碼問題彙總

這兩天寫了個監測網頁的爬蟲,作用是跟蹤乙個網頁的變化,但執行了一晚出現了乙個問題。希望大家不吝賜教!我用的是python3,錯誤在對html response的decode時丟擲,原樣為 response urllib.urlopen dsturl content response.read dec...

python3 標準型別

number 數字 string 字串 list 列表 tuple 元組 sets 集合 dictionary 字典 python3 支援 int float bool complex 複數 1 python可以同時為多個變數賦值,如a,b 1,2。2 乙個變數可以通過賦值指向不同型別的物件。3 數...

python3編碼解碼

輸入編碼 輸入編碼需要由二進位制轉為unicode,輸入介質 原始碼檔案 終端 檔案 網路等 python3預設是使用utf 8編碼對輸入的二進位制值轉為unicode。也就是說如果輸入介質沒有指定編碼,python3直譯器就預設把你的原始檔看成是utf 8編碼。呼叫sys.getdefaulten...