日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

如何解决python中编码错误的问题_【总结】Python 2.x中常见字符编码和解码方面的错误及其解决办法...

發布時間:2023/12/2 python 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何解决python中编码错误的问题_【总结】Python 2.x中常见字符编码和解码方面的错误及其解决办法... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

該樓層疑似違規已被系統折疊?隱藏此樓查看此樓

對于Python解析器

而Python解析器所干的事情,就是:

Python解析器,根據當前的所用的字符串編碼類型

此字符串編碼類型,是你自己所設置的

不論是在Python的IDLE中,還是Python文件中

都是你自己顯示指定對應的編碼類型的

當然你沒顯示的指定的話,那就用默認的配置

如果是Python的IDLE,如果你沒修改defaultencoding,那么就使用默認的字符編碼

可以通過sys.getdefaultencoding()而獲得,比如此處獲得是:ascii

idle sys.getdefaultencoding

如果是Python文件,如果你沒聲明文件編碼,則使用默認的編碼:UTF-8

常見的做法是指定為對應的UTF-8類型:# -*- coding: utf-8 -*-

相關內容,不了解的可參考:【整理】關于Python腳本開頭兩行的:#!/usr/bin/python和# -*- coding: utf-8 -*-的作用 – 指定文件編碼類型

去執行你的Python代碼

其中,很常見的幾種動作是:

打印print對應的所獲得的字符

對于字符串打印,Python的邏輯:

如果是Unicode字符串,則可以,自動地,編碼為對應的終端所用編碼,然后正確的顯示出來

比如unicode的字符串,輸出到windows的默認編碼為GBK的cmd中,則Python可以自動將Unicode編碼為GBK,然后輸出到cmd中

個別特殊情況,也會出錯:

當此unicode字符串中包含某特殊字符,而目標終端的編碼**中,沒有此字符,則很明顯也是無法實現將Unicode編碼為對應的特定編碼的字符串,無法正確顯示的

如果是某種編碼類型的str,則需要該str的編碼類型,和目標終端編碼匹配

比如GBK的字符串,輸出到windows的默認編碼為GBK的cmd,則是可以正常輸出的

此處后來經過代碼測試,就發現一個有趣或者說詭異的問題,雖然我們python文件聲明的UTF-8編碼,但是實際上實際上是用GBK編碼,而此時,文件中的字符串,很明顯是用GBK存儲的,所以,將此GBK字符,輸出到GBK的cmd中,是可以正常輸出的。即,此處字符串的類型,很明顯只和文件所用的實際編碼有關,而和文件所聲明的代碼無關。

如果是UTF-8的字符串,輸出到windows的默認編碼為GBK的cmd,就會出錯

對相應的字符,進行編碼(為某種特定類型的字符str),或解碼(為對應的unicode類型的字符)

比如將當前的某種編碼的字符串,解碼為Unicode字符串

很明顯,也是要保證,你字符串本身的編碼和所指定的編碼,兩者之間要一致的

比如:decodedUnicode = someUtf8Str.decode("UTF-8")

而如果用這樣的:decodedUnicode = someGbkStr.decode("UTF-8"),那就會出現錯誤

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的如何解决python中编码错误的问题_【总结】Python 2.x中常见字符编码和解码方面的错误及其解决办法...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。