1. 程式人生 > >python3中的編碼、字串編碼等

python3中的編碼、字串編碼等

首先python3中字串的預設編碼剛完事就是Unicode,所以可以直接對python3中的字串使用內建方法.encode()來定義字串的編碼格式。

>>> a="nihao"
>>> ab=bytes(a,encoding='gbk')  #將Unicode格式的字串轉換成gbk編碼之後的位元組,英文不變
>>> ab
b'nihao'
>>> c="你好"
>>> cd=bytes(c,encoding='gbk')#Unicode下的字元,一個漢字對應gbk編碼的兩個位元組
>>> cd
b'\xc4\xe3\xba\xc3'
>>> str(cd,encoding='gbk')#將位元組轉化成字串
'你好'
>>> str(b'\xc4\xe3',encoding='gbk')
'你'
>>> len(c)
2
>>> cd
b'\xc4\xe3\xba\xc3'
>>> ce=c.encode('gbk')#將字串c採用gbk編碼得到它的位元組串
>>> ce
b'\xc4\xe3\xba\xc3'
>>> ce.decode('gbk')#講位元組串解碼成Unicode,這裡的引數是為了說明當前位元組串是通過何種編碼方式得到的
'你好'
>>>

還有一個小技巧,檢視當前位元組串(字串編碼過後的位元組串)採用的編碼格式的話,需要匯入chardet模組

import chardet
>>> ss=bytes("你好",encoding="utf-8")
>>> chardet.detect(ss)
{'encoding': 'utf-8', 'confidence': 0.7525, 'language': ''}
>>> ss
b'\xe4\xbd\xa0\xe5\xa5\xbd'
>>> chardet.detect(b'\xe4\xbd')
{'encoding': 'ISO-8859-1', 'confidence': 0.73, 'language': ''}
>>> chardet.detect(b'\xe4\xbd\xe5')
{'encoding': 'ISO-8859-1', 'confidence': 0.73, 'language': ''}
>>> chardet.detect(b'\xe4\xbd\xa0')
{'encoding': 'ISO-8859-1', 'confidence': 0.73, 'language': ''}
>>> ss
b'\xe4\xbd\xa0\xe5\xa5\xbd'
>>> chardet.detect(b'\xe4\xbd\xa0')
{'encoding': 'ISO-8859-1', 'confidence': 0.73, 'language': ''}
>>>

相關推薦

python3編碼字串編碼

首先python3中字串的預設編碼剛完事就是Unicode,所以可以直接對python3中的字串使用內建方法.encode()來定義字串的編碼格式。 >>> a="nihao" >>> ab=bytes(a,encoding='gbk')

python3各個字符編碼的轉換

code -s span utf pri 轉換 nic 順序 utf-8 a=‘我很好‘ ####python3 默認的編碼為unicode###unicode>gb2312unicode_gb2312=a.encode(‘gb2312‘) ###因為默認是un

linux 下URL UTF-8編碼GB2312編碼與漢字之間的轉換

下面是UTF-8編碼的轉換程式碼 #include <string.h> #include <stdio.h> #include <stdlib.h> /* 16進位制字元表 */ static const char c2x_table[] = "0

python3與python2的字串編碼問題

Python3和Python2字串編碼採用不同的方式,下面分為幾部分進行比較。 1、檢視Python版本 import sys __author__ = "author" print(sys.version_info) #字典方式顯示 print(sys

python3網路程式設計的編碼問題

在學習python3網路程式設計的時候,總是出現“a bytes-like object is required,not ‘str’ ”這種提示,很苦惱,網上也百度了一波,可是還是沒有得到解決,便看了看有關編碼的知識,可是看了之後還是報同樣的問題,感覺應該是se

python3的np.load編碼問題

由於在Python2 中的預設編碼為ASCII,但是在Python3中的預設編碼為UTF-8。 所以在使用np.load(det.npy)的時候會出現錯誤提示: you may need to pass the encoding= option to numpy.loa

eclipse的字型編碼自動拼寫設定

1.字型設定 Window -> Preferences -> General -> Appearance -> Colors and Fonts -> Basi

所有的字符編碼由System.Text.Encoding類獲取所有的字符編碼如Unicode編碼 GB18030編碼(UTF-8) 簡體中文(GB2312)

mac net 挪威 head sun -m abi cal 篩選 本頁列出來目前window下所有支持的字符編碼 ---通過 System.Text.Encoding.GetEncodings()獲取,裏面可以對其進行查詢,篩選,對同一個字符,在不同編碼進行查看和分

ASP.NET Core 編碼web編碼網頁編碼 System.Text.Encodings.Web

System.Text.Encodings.Web 空間包含表示 Web 編碼器的基類、表示 HTML、JavaScript 和 Url 字元編碼的子類,以及表示僅允許編碼特定字元、字元範圍或碼位的篩選器的類。     [ 定義來自 microsoft ] 該名稱空間有五個類,用於不同物件的編碼處理。

2018.9.10學習內建函式切片字串拼接

今日練習: # 題目1:從網路上使用爬蟲程式得到下面字串: # zhangsan-18-175-70-python5;lisi-20-170-80-python5;wangwu-28-165-60-python3;zhaoliu-18-175-70-python5;xi

Python機器學習-資料預處理技術 標準化處理歸一化二值化獨熱編碼標記編碼總結

資料預處理技術 機器是看不懂絕大部分原始資料的,為了讓讓機器看懂,需要將原始資料進行預處理。 引入模組和資料 import numpy as np from sklearn import preprocessing data = np.array([[3,-1.5,2,-5.4], &nbs

js元素觸點各種距離的總結

  每次碰到元素滾動呀、滑鼠拖動呀之類的通過對比位置來觸發事件的需求時,都要花很多時間來百度怎麼取到自己想要的那個值,什麼scrollTop、offset等等,今天就把這些東西總結一下,以後再使用的話,就不用各種的百度了。 一,window視窗的各種距離   screen.width/height: 螢幕

Python3數字日期以及時間

1、取整操作---round(value,ndigits)函式round(3.14,1) 3.1 round(2.28,1) 2.3 round(3.1415926,3) 3.142當某個值恰好等於兩個整數之間的一半時,取整操作會取到離該值最接近的那個偶數上。(針對pytho

(轉)詳解Python3 hasattr()getattr()setattr()delattr()函數及示例代碼數

div 是否 ror try default count kref obj www 原文:https://www.jb51.net/article/138363.htm hasattr()函數 hasattr()函數用於判斷是否包含對應的屬性 語法: hasattr(obj

多執行緒sleep()wait()方法得區別?

  1、這兩個方法來自不同的類分別是Thread和Object   2、最主要是sleep方法沒有釋放鎖,而wait方法釋放了鎖,使得其他執行緒可以使用同步控制塊或者方法。   3、wait,notify和notifyAll只能在同步控制方法或者同步控制塊裡面使用,而sl

Android硬編碼——音訊編碼視訊編碼及音視訊混合

視訊編解碼對許多Android程式設計師來說都是Android中比較難的一個知識點。在Android 4.1以前,Android並沒有提供硬編硬解的API,所以之前基本上都是採用FFMpeg來做視訊軟體編解碼的,現在FFMpeg在Android的編解碼上依舊廣泛應用。本

base64編碼的作用 為何使用base64編碼base64編碼使用場景

作者:郭無心 連結:https://www.zhihu.com/question/36306744/answer/71626823 來源:知乎 著作權歸作者所有,轉載請聯絡作者獲得授權。X.509公鑰證書也好,電子郵件資料也好,經常要用到Base64編碼,那麼為什麼要作一下這樣的編碼呢? 我們知道在計算機中任

搜尋引擎倒排索引表壓縮:gamma編碼Golomb編碼

搜尋引擎的倒排索引表所佔的空間很大,對倒排索引表進行壓縮顯得非常必要。由於倒排索引表中儲存的全部都是數字,對其進行壓縮有著專門的方法,Gamma編碼就是其中之一。 當你每天開啟電腦,在百度搜索框中輸入你要搜尋的內容,按下回車之後,你可能不會意識到,有無數臺主機

[翻譯]python3新的字串格式化方法-----f-string

從python3.6開始,引入了新的字串格式化方式,f-字串. 這使得格式化字串變得可讀性更高,更簡潔,更不容易出現錯誤而且速度也更快. 在本文後面,會詳細介紹f-字串的用法. 在此之前,讓我們先來複習一下python中字串格式化的方法. python中傳統的字串格式化方法. 在python3.6之前,我們有

python3 的Json序列化反序列化 和 字符編碼的問題解決

ron bsp port imp 入參 oos elf asc 反序列化 python3在通過Json往文件裏寫內容時中文字符被轉成unicode編碼 import json class file_open(object): f = open(‘c