unicode 编码转换漏洞_好程序员Python教程之字符串编码知识小结
好程序員Python教程之字符串編碼知識(shí)小結(jié),提及Python字符串,你會(huì)想到什么?是ASCII,還是Unicode?他們之間是如何轉(zhuǎn)換的?字符串編碼和字符串有什么區(qū)別?接下來好程序員Python教程就給大家分享Python入門教程中有關(guān)字符串的知識(shí)點(diǎn)。
1、字符和字節(jié)
一個(gè)字符不等價(jià)于一個(gè)字節(jié),字符是人類能夠識(shí)別的符號(hào),可以有多種表示方法,不同的表示方法會(huì)使用不同的字節(jié)數(shù)。比如字母A-Z都可以用ASCII碼表示(占用一個(gè)字節(jié)),也可以用Unicode表示(占兩個(gè)字節(jié)),還可以用UTF-8表示(占用一個(gè)字節(jié))。
字符編碼的作用是將人類可識(shí)別的字符轉(zhuǎn)換為機(jī)器可識(shí)別的字節(jié)碼以及反向過程。Unicode是真正的字符串,而用ASCII、UTF-8、GBK等字符編碼表示的是字節(jié)串。
2、編碼和解碼
以Unicode為例,編碼(encode)是將Unicode字符串(中的代碼點(diǎn))轉(zhuǎn)換特定字符編碼對(duì)應(yīng)的字節(jié)串的過程和規(guī)則;解碼(decode)是將特定字符編碼的字節(jié)串轉(zhuǎn)換為對(duì)應(yīng)的Unicode字符串(中的代碼點(diǎn))的過程和規(guī)則。
無論是編碼還是解碼,都需要一個(gè)重要因素,就是特定的字符編碼。因?yàn)橐粋€(gè)字符用不同的字符編碼進(jìn)行編碼后的字節(jié)值以及字節(jié)個(gè)數(shù)大部分情況下是不同的,反之亦然。
3、Python編碼轉(zhuǎn)換
Python編碼類型默認(rèn)是UTF-8,Python2的默認(rèn)編碼是ASCII,不能識(shí)別中文字符,需要顯式指定字符編碼;Python3的默認(rèn)編碼為Unicode,可以識(shí)別中文字符。
在Python中不同編碼的轉(zhuǎn)換都要經(jīng)過Unicode,不論是UTF-8或者是GBK,整個(gè)過程都是先通過編碼decode轉(zhuǎn)換為Unicode告訴Unicode當(dāng)前的編碼格式是什么、然后再通過解碼encode轉(zhuǎn)換為自己想要實(shí)現(xiàn)的編碼格式或類型。
4、常見編碼錯(cuò)誤原因
1)Python解釋器的默認(rèn)編碼
2)Python源文件文件編碼
3)Terminal使用的編碼
4)操作系統(tǒng)的語言設(shè)置
作為人工智能時(shí)代的最佳編程語言,Python吸引了廣泛關(guān)注,選擇學(xué)習(xí)Python的人日益增多。盡管Python入門簡單,但企業(yè)的高要求促使越來越多的人參加培訓(xùn)班系統(tǒng)學(xué)習(xí)并積累實(shí)戰(zhàn)經(jīng)驗(yàn)。
總結(jié)
以上是生活随笔為你收集整理的unicode 编码转换漏洞_好程序员Python教程之字符串编码知识小结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 代码设置 键盘适应_An
- 下一篇: mysql的数据现实在小程序_使用php