激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術(shù)及教程分享平臺!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Python - 解決python2中unicode()函數(shù)在python3中報(bào)錯(cuò)的問題

解決python2中unicode()函數(shù)在python3中報(bào)錯(cuò)的問題

2021-10-29 09:21哦摩西羅伊 Python

這篇文章主要介紹了在python2中unicode()函數(shù)在python3中報(bào)錯(cuò)的解決方案,希望給大家做個(gè)參考,下次出現(xiàn)這個(gè)問題的時(shí)候,也知道如何應(yīng)對

python2中的unicode()函數(shù)在python3中會報(bào)錯(cuò):

NameError: name "unicode" is not defined

There is no such name in Python 3, no. You are trying to run Python 2 code in Python 3. In Python 3, unicode has been renamed to str.

翻譯過來就是:Python 3中沒有這樣的名字,沒有。 您正在嘗試在Python 3中運(yùn)行Python 2代碼。在Python 3中,unicode已重命名為str。

函數(shù)轉(zhuǎn)換:unicode()到 str()為:

//python2:
unicode(nn,"utf-8")
//python3:
str(nn)

補(bǔ)充:根本解決Python2中unicode編碼問題

Python2中編碼問題

因?yàn)橛?jì)算機(jī)只識別01這要的二進(jìn)制,所以在計(jì)算機(jī)存儲我們的文件時(shí),要使用二進(jìn)制數(shù)來表示。所以編碼就是哪個(gè)二進(jìn)制數(shù)表示哪個(gè)字符:

編碼原由系統(tǒng)編碼、文件編碼與python系統(tǒng)編碼Python字符編碼python中的字典、數(shù)組轉(zhuǎn)字符串中的中文編碼

編碼原由

ASCII編碼

最早出現(xiàn)的是ASCII碼,使用8位二進(jìn)制數(shù)組合表示128種字符。因?yàn)锳SCII編碼是美國人發(fā)明的,當(dāng)初沒考慮給別的國家用,所以,它僅僅表示了所有美式英語的語言字符。但是沒有使用完。

ISO 8859-1/windows-1252

128位字符滿足了美國人的需求,但是隨之歐洲人加入互聯(lián)網(wǎng),為了滿足歐洲人的需求,8位二進(jìn)制后面還有128位。這一段編碼我們稱之?dāng)U展字符集,即ISO 8859-1編碼標(biāo)準(zhǔn),后來歐洲的需求變更,即規(guī)定了windows-1252代替了ISO 8859-1

GB2312

然后當(dāng)我國加入后,8位二進(jìn)制(即一個(gè)字節(jié))用完了,于是我們保留ASCII編碼即前128位,后面的全部刪除。因?yàn)槲覈谜Z言博大精深,所以需要2個(gè)字節(jié),即16位才能滿足我們得需求,所以當(dāng)計(jì)算機(jī)遇到大于127的字節(jié)時(shí),就一次性讀取兩個(gè)字節(jié),將他解碼成漢字。即GB2312編碼

GBK

相當(dāng)于GB2312的改進(jìn)版,增添了中文字符。但還是2個(gè)字節(jié)表示漢字

GB18030

為了滿足日韓和我國的少數(shù)民族的需求,對GBK的改進(jìn),使用變長編碼,要么使用兩個(gè)字節(jié),要么使用四個(gè)字節(jié)。

Unicode

雖然每種編碼都兼容ASCII編碼,但是各個(gè)國家是不兼容的。于是出現(xiàn)了Unicode,它將所有的編碼進(jìn)行了統(tǒng)一。它不能算是一種具體的編碼標(biāo)準(zhǔn),只是將全世界的字符進(jìn)行了編號,并沒有指定他們具體在計(jì)算機(jī)種以什么樣的形式存儲。

它的具體實(shí)現(xiàn)有UTF-8,UTF-16,UTF-32等。

系統(tǒng)編碼、文件編碼與python系統(tǒng)編碼

在linux中獲取系統(tǒng)編碼結(jié)果:

解決python2中unicode()函數(shù)在python3中報(bào)錯(cuò)的問題

Windows系統(tǒng)的編碼,代碼頁936表示GBK編碼

解決python2中unicode()函數(shù)在python3中報(bào)錯(cuò)的問題

可以看到linux系統(tǒng)默認(rèn)使用UTF-8編碼,windows默認(rèn)使用GBK編碼。Linux環(huán)境下,文件默認(rèn)使用UTF-8編碼。當(dāng)然你也可以指定文件編碼方式。

Python解釋器內(nèi)部默認(rèn)使用的ASCII編碼方式去解讀python源文件。

解決python2中unicode()函數(shù)在python3中報(bào)錯(cuò)的問題

所以當(dāng)文件內(nèi)存在非ASCII字符時(shí),python解釋器無 法識別,就會出現(xiàn)編碼錯(cuò)誤。

解決python2中unicode()函數(shù)在python3中報(bào)錯(cuò)的問題

So,這個(gè)時(shí)候需要告訴python解釋器用utf-8去解讀python源文件

解決python2中unicode()函數(shù)在python3中報(bào)錯(cuò)的問題

解決python2中unicode()函數(shù)在python3中報(bào)錯(cuò)的問題

Python字符編碼

Python2中有兩類字符串,分別是str與unicode。這兩類字符串都派生自抽象類basestring。 Str即普通字符串類型

解決python2中unicode()函數(shù)在python3中報(bào)錯(cuò)的問題

在字符串前加上u即unicode編碼

解決python2中unicode()函數(shù)在python3中報(bào)錯(cuò)的問題

在代碼中通常用到的是unicode,文件保存的是utf-8編碼。Unicode編碼是固定2個(gè)字節(jié)代表一個(gè)字符。Utf-8是對英文只用一個(gè)字節(jié),對中文是3個(gè)字節(jié)。所以unicode運(yùn)行效率高,utf-8運(yùn)行效率相比要低,但是空間存儲要小。

解決python2中unicode()函數(shù)在python3中報(bào)錯(cuò)的問題

Python中str與unicode轉(zhuǎn)換

Unicode轉(zhuǎn)str

解決python2中unicode()函數(shù)在python3中報(bào)錯(cuò)的問題

str轉(zhuǎn)unicode

解決python2中unicode()函數(shù)在python3中報(bào)錯(cuò)的問題

其函數(shù)中參數(shù)UTF-8是,以utf-8編碼對unicode對象解碼,或編碼。

python中的字典、數(shù)組轉(zhuǎn)字符串中的中文編碼

當(dāng)字典中的中文字符是unicode類型時(shí)

解決python2中unicode()函數(shù)在python3中報(bào)錯(cuò)的問題

解決python2中unicode()函數(shù)在python3中報(bào)錯(cuò)的問題

解決python2中unicode()函數(shù)在python3中報(bào)錯(cuò)的問題

解決python2中unicode()函數(shù)在python3中報(bào)錯(cuò)的問題

decode(“unicode-escape”)相當(dāng)是反向編碼.然后再進(jìn)行utf-8編碼即可

當(dāng)字典中的字符串是string類型時(shí)

name = {"name": "中國"}
name = str(name)
print name.decode("string-escape")

解決python2中unicode()函數(shù)在python3中報(bào)錯(cuò)的問題

當(dāng)數(shù)組進(jìn)行字符串化時(shí)

解決python2中unicode()函數(shù)在python3中報(bào)錯(cuò)的問題

最后總結(jié)

不管是數(shù)組還是字典,在進(jìn)行字符串轉(zhuǎn)換是,即是又一次編碼,所以,對于本身還有的中文字符串又一次編碼,所以要進(jìn)行一次反編碼,才能看到原有的編碼。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持服務(wù)器之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

原文鏈接:https://www.cnblogs.com/mlgjb/p/11144145.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品福利一区 | 国产精品爆操 | 91午夜免费视频 | 91色一区二区三区 | 国产免费片 | 欧美www| 亚洲一级簧片 | 免费a级毛片大学生免费观看 | 国产精品视频专区 | 国产亚洲精品久久久久婷婷瑜伽 | 国产精品视频不卡 | 91午夜免费视频 | 九一免费国产 | 青草伊人网 | 成人aaaa免费全部观看 | 最新se94se在线欧美 | 国产精品一区2区3区 | 精品国产高清一区二区三区 | 欧美a级大胆视频 | 一级免费大片 | 国产成人免费高清激情视频 | 日韩精品一区二区久久 | 依依成人综合 | 性猛交ⅹxxx乱巴西 asian超清日本肉体pics | 全黄毛片 | 久久久成人免费视频 | 欧美精品久久久久久久多人混战 | 国产精品自拍99 | 国产精品久久久久久久久粉嫩 | 国产精品区在线12p 午夜视频色 | 成人免费av在线播放 | 日韩在线播放中文字幕 | 99re久久最新地址获取 | gogo全球大胆高清人露出91 | 午夜国产成人 | 久久777国产线看观看精品 | 成年人免费视频播放 | 久久不射电影网 | 欧美成人免费在线视频 | 91久久精品一区二区 | 92看片淫黄大片欧美看国产片 |