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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

idea console中文乱码_Python3的字符编码乱码问题解决思路

發布時間:2025/4/5 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 idea console中文乱码_Python3的字符编码乱码问题解决思路 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在亂碼問題上,Python3相比Python2已經好多了,但在處理外來字符時比如文件或者網站時還是會出現亂碼問題。

亂碼的原因很多,一個是來源的字符編碼在接收時處理不當,編程語言默認的UTF8處理gb2312字符時沒聲明encoding,當然會出錯。二是在代碼用到的第三方代碼使用了默認encoding處理了。三是在控制臺或者文本編輯器中,這些程序本身也有默認的encoding。這三個環節沒處理好都會出現亂碼問題。

以一個最常見的爬蟲程序為例。網站在head里本身雖然聲明了gbk charset,但有可能是錯的。 首先我們要確保requests沒有改變編碼,而用response.content 就可以確保這一點,因為它是字節流,也就是requests下載的原生內容。然后我們可以調用charset.detect方法判斷encoding,結果輸出是gb2312

知道來源的編碼至關重要,不然我們就不清楚哪里出了錯,只能不停試驗可以的組合編碼和轉換。知道原有的編碼以后,就可以在隨后的每一行代碼里查看encoding是否發生改變,如果出現亂碼,就可以肯定在這一行指定的encoding有錯。

一般來說我們可以print下查看是否有亂碼。但這里有個巨大的坑,要看你用的操作系統,終端程序或者IDE。象windows可能是gb2312或者UTF16, Linux則要設置Locale系統變量。而且就算你設置對了,還要考慮是否當前字體是否支持中文,不然也是亂碼。

萬能的SO有高人給了一個方法可以無視console的encoding, 直接用sys.out.buffer.write() ,但前提是stdout用了正確的編碼匹配你的字符變量的編碼。

sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')

完整的程序如下,在cmd.exe, pycharm, wsl終端下都可以完美顯示

import

掃碼關注公眾號,獲取更多文章

總結

以上是生活随笔為你收集整理的idea console中文乱码_Python3的字符编码乱码问题解决思路的全部內容,希望文章能夠幫你解決所遇到的問題。

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