摘要:一提到字符編碼,我身邊的好多朋友都揮手,拜拜字符編碼就像一個(gè)烙印深深地印在心底,成為心病。所以當(dāng)計(jì)算機(jī)在全球范圍內(nèi)進(jìn)行覆蓋時(shí),各國紛紛制定屬于本國的專屬字符編碼方案。知道了每個(gè)字符編碼的由來,我們?cè)倏粗芯幋a疑問就很好解釋了。
一提到字符編碼,我身邊的好多朋友都揮手,拜拜!字符編碼就像一個(gè)烙印深深地印在心底,成為心病。
今天就來啃一啃這老骨頭。
我們遇到過哪些編碼?
ASCII,ANSI,GB2312,GBK,Unicode,UTF-8,MBCS,JIS,KS等等,為什么會(huì)出現(xiàn)這么多不同的編碼,他們之間又有什么不同呢?
我們可以看看字符編碼的歷史,就能解決心中的疑惑了
由圖可見,計(jì)算機(jī)當(dāng)時(shí)從美國誕生,所以美國在設(shè)置字符編碼的時(shí)候,并未考慮其它國家。所以當(dāng)計(jì)算機(jī)在全球范圍內(nèi)進(jìn)行覆蓋時(shí),各國紛紛制定屬于本國的專屬字符編碼方案。由于各個(gè)方案互相并不兼容,所以便有Unicode一統(tǒng)天下。
知道了每個(gè)字符編碼的由來,我們?cè)倏磒ython中編碼疑問就很好解釋了。
python3將系統(tǒng)默認(rèn)編碼設(shè)置為utf-8
python3用str表示Unicode所有字符,bytes類型表示二進(jìn)制數(shù)據(jù)
兩者之間關(guān)系為:
b = "好" print(type(b)) //c = b.encode("utf-8") print(type(c)) // c = b.encode("ASCII") print(type(c)) //報(bào)錯(cuò),ASCII不支持中文 d = c.decode("utf-8") print(type(d)) // d = c.decode("gb2312") print(type(d)) //報(bào)錯(cuò),解碼格式和編碼格式不同
注意事項(xiàng):
一般編碼和解碼格式保持一致,即使用utf-8編碼后,也要用utf-8解碼。否則可能會(huì)報(bào)錯(cuò)
含有中文的字符編碼時(shí)不能采用ASCII,因?yàn)樗恢С种形?/p>
習(xí)慣:雖然python3去除了python2字符編碼的很多詬病,但是一些習(xí)慣還是保持下去
譬如頭文件添加編碼注釋
#!/usr/bin/env python3 # -*- coding: utf-8 -*-
如果問python2中怎么辦呢?
棄坑吧!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/41354.html
摘要:如果傳一個(gè)中文,下和下編碼分別是和,可以自己用打印看看文件中寫死,本來理解是跟這個(gè)文件本身編碼有關(guān),但文件編碼同樣是的情況下,下打印了的超集,下仍然是。 對(duì)編碼問題一直一知半解,之前也是得過且過,正好有個(gè)同事要我?guī)兔憘€(gè)腳本,涉及這方面的問題,借這個(gè)契機(jī)研究了一下. 先貼幾篇比較好的: 1.阮老師的上古文章(07年…),雖然古老但對(duì)理解幫助很大,從最基礎(chǔ)講起,邏輯清晰易理解. (ps:...
摘要:紀(jì)念我的第一個(gè)爬蟲程序,一共寫了三個(gè)白天,其中有兩個(gè)上午沒有看,中途遇到了各種奇怪的問題,伴隨著他們的解決,對(duì)于一些基本的操作也弄清楚了。我這個(gè)程序想要獲取的是劍來小說,把各個(gè)章節(jié)的內(nèi)容爬去下載存儲(chǔ)到文件里。 紀(jì)念我的第一個(gè)爬蟲程序,一共寫了三個(gè)白天,其中有兩個(gè)上午沒有看,中途遇到了各種奇怪的問題,伴隨著他們的解決,對(duì)于一些基本的操作也弄清楚了。果然,對(duì)于這些東西的最號(hào)的學(xué)習(xí)方式,就是...
摘要:大家好,我是一行之前一行分享過好用的幾種編輯器,測(cè)試有沒有下載成功,用來做數(shù)據(jù)分析,開發(fā)的大殺器,等等,小眾猿群使用那在用這個(gè)開發(fā)大殺器的同時(shí),一行也來分享幾個(gè)它很好用的插件,來給你的搬磚提提速可以作為摸魚好助手次下載 ...
摘要:如果你有疑問,或許可以參考創(chuàng)建密鑰使用谷歌將語音轉(zhuǎn)換為文字。將其取出,得到字典。 在之前發(fā)布的使用谷歌Cloud Speech API將語音轉(zhuǎn)換為文字一文中,我們實(shí)現(xiàn)了在控制臺(tái)使用curl發(fā)送post請(qǐng)求,得到語音轉(zhuǎn)文字的結(jié)果;而在Python中使用谷歌Cloud Speech API將語音轉(zhuǎn)換為文字一文中,我們實(shí)現(xiàn)了安裝Cloud Speech API客戶端庫,通過調(diào)用庫函數(shù)得到語音...
摘要:一旦建立了虛擬化層,并通過元數(shù)據(jù)進(jìn)行數(shù)據(jù)管理,就可以執(zhí)行以前無法完成的各種事情。一旦將元數(shù)據(jù)和數(shù)據(jù)的管理分開,所有消失了。當(dāng)您虛擬化數(shù)據(jù)時(shí),所有這些事情都是可能的,因?yàn)榕c孤立的存儲(chǔ)基礎(chǔ)架構(gòu)相比,元數(shù)據(jù)的使用更加靈活。如果您已經(jīng)在使用Kubernetes了,則可能有一個(gè)簡(jiǎn)單的原因:它使您的生活更輕松。畢竟,這是基于容器編排的整個(gè)前提。它讓基礎(chǔ)設(shè)施變得可支配,在需要時(shí)將其旋轉(zhuǎn),完成后將其丟棄,因...
閱讀 1497·2021-09-23 11:21
閱讀 3172·2019-08-30 14:14
閱讀 3250·2019-08-30 13:56
閱讀 4262·2019-08-30 11:20
閱讀 2020·2019-08-29 17:23
閱讀 2837·2019-08-29 16:14
閱讀 1764·2019-08-28 18:18
閱讀 1544·2019-08-26 12:14