unicode和utf-8編碼區別


       以前使用Python2,一直為中文煩惱,也不知道為什么開頭就要聲明#coding=utf-8,后來用了Python3,發現就不用這樣了,還是想徹底弄懂下這是為什么。

      先講asc碼  每個 ASC碼占一個字節   1個字節=8個bit   也就是說ASC碼最多只有256個   表示中文肯定是不夠的  ,所以后面就有了中文編碼 gb2312,一個gb2312占用兩個字節 ,但是中文有了 日文韓文等也都有自己的編碼,這個就很亂,后來就有了統一編碼Unicode ,Unicode占用兩個字節 ,但是代碼一般都是英文的,占了兩個字節多占用了一倍的存儲,不利於傳輸和存儲,於是就有了utf-8的格式 可變長編碼,utf-8英文占用1個字節,漢字占用三個字節。

       我們用Python2的時候,漢字在Windows下默認是用的GB2312編碼的,一般會申明都會帶上一個小寫的u,表示使用的是Unicode編碼;所以Python經常會使用decode函數和encode函數,decode函數作用是將其他編碼轉換成Unicode,encode函數的作用是將Unicode轉換成其他編碼;如 s=“我愛Python”是gb2312編碼,把它轉換成utf-8編碼就得使用 s.decode("GB2312").encode("utf-8")。如果在Python3中,它默認就是Unicode編碼,就可以直接encode成utf-8格式了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM