亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python3之亂碼\xe6\x97\xa0\xe6\xb3\x95處理方式

 更新時間:2020年05月11日 09:58:56   作者:Quincy379  
這篇文章主要介紹了Python3之亂碼\xe6\x97\xa0\xe6\xb3\x95處理方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

查看字符編碼:

import chardet
response = chardet.detect(b'\xe5\xbd\x93\xe5\x89\x8d\xe7\x9b\xae\xe5\xbd\x95\xe4\xb8\x8b\xe6\x89\x80\xe6\x9c\x89\xe6\x96\x87\xe4\xbb\xb6\xe5\x90\x8d\xe6\xb1\x87\xe6\x80\xbb\xe5\x88\x97\xe8\xa1\xa8')
print(response)

{'encoding': 'utf-8', 'confidence': 0.99, 'language': ''}

亂碼字符轉(zhuǎn)換:

response = b'\xe5\xbd\x93\xe5\x89\x8d\xe7\x9b\xae\xe5\xbd\x95\xe4\xb8\x8b\xe6\x89\x80\xe6\x9c\x89\xe6\x96\x87\xe4\xbb\xb6\xe5\x90\x8d\xe6\xb1\x87\xe6\x80\xbb\xe5\x88\x97\xe8\xa1\xa8'
print(response.decode('utf8'))
# def decode_char(*args):
#   response = args[0]
#   print(response.decode('utf8'))
#
# c = b'\a8\xe5\x90\xa7\xef\xbc\x81'
#
# decode_char(c)

補充知識:python3 中怎么把類似這樣的'\xe5\xae\x9d\xe9\xb8\xa1\xe5\xb8\x82'轉(zhuǎn)換成漢字輸出

在編程的過程中遇到了類似的困擾,網(wǎng)上查了很多解決思路,終于算是明白了一些,這里和大家分享 一下。

python3相對于python2最重要的新特性之一就是對字符串(文本)和二進制數(shù)據(jù)流做了明確的區(qū)分,文本總是Unicode,由字符類型表示,而二進制數(shù)據(jù)則由bytes類型表示,python3不會以任意隱式方式混用字節(jié)型和字符型,也不能拼接字符串和字節(jié)流(python2中可以,會自動進行轉(zhuǎn)換),也不能在字節(jié)流中搜索字符串,也不能將字符串傳入?yún)?shù)為字節(jié)流的函數(shù)。

str和bytes類型之間的相互轉(zhuǎn)換

字符串類str有一個encode()方法,它是字符串向比特流的編碼過程。

bytes類則有一個decode()方法,它是比特流向字符串的解碼過程

encode過程

s = '絕地求生'
ss = s.encode()
print(type(ss))
print(ss)

運行結(jié)果:

decode過程

s = b'\xe7\xbb\x9d\xe5\x9c\xb0\xe6\xb1\x82\xe7\x94\x9f'
ss = s.decode()
print(type(ss))
print(ss)

運行結(jié)果:

了解過基本的轉(zhuǎn)化過程,下面回到主題,如何將'\xe7\xbb\x9d\xe5\x9c\xb0\xe6\xb1\x82\xe7\x94\x9f'轉(zhuǎn)換成漢字輸出呢?

要解決的問題是將bytes類型的內(nèi)容以漢字的形式輸出,但是該部分內(nèi)容是字符串類型。因此首先需要將該str轉(zhuǎn)換成bytes類型,再decode解碼為str輸出。這里需要用到的方法是encode(‘raw_unicode_escape')。當然,也可以使用decode(‘raw_unicode_escape')方法輸出內(nèi)容為bytes形式的字符串

s = '\xe7\xbb\x9d\xe5\x9c\xb0\xe6\xb1\x82\xe7\x94\x9f'
ss = s.encode('raw_unicode_escape')
print(type(ss))
print(ss)

sss = ss.decode()
print(sss)

結(jié)果:

方法補充:如果我們直接定義bytes類型的變量,也可以直接使用str(s, ‘utf8')的方式輸出漢字

s = b'\xe7\xbb\x9d\xe5\x9c\xb0\xe6\xb1\x82\xe7\x94\x9f'

print(type(s))
print(s)

ss = str(s, 'utf8')
print(ss)

結(jié)果:

第二種方法可以輸出從網(wǎng)絡上直接抓取的網(wǎng)頁中包含的中文字符。

我們使用如下代碼,抓取網(wǎng)頁www.baidu.com

import urllib.request
response = urllib.request.urlopen('http://www.baidu.com')
html = response.read()
print(html)

顯示的結(jié)果中,中文部分會以\xe7\x99\xbe\xe5\xba\xa6\xe4\xb8\x80代替,這里可以使用方法二進行轉(zhuǎn)換。

import urllib.request
response = urllib.request.urlopen('http://www.baidu.com')
html =str(response.read(),'utf-8')
print(html)

結(jié)果如下:

以上這篇Python3之亂碼\xe6\x97\xa0\xe6\xb3\x95處理方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

最新評論