Python如何設(shè)置utf-8為默認(rèn)編碼的問題
Python設(shè)置utf-8為默認(rèn)編碼
python默認(rèn)的編碼是ASCII,通過sys.getdefaultencoding()可以查看默認(rèn)編碼。
當(dāng)程序中出現(xiàn)非asc編碼時(shí),python的處理常常會有亂碼的錯(cuò)誤,一般有如下幾種方法:
代碼臨時(shí)更改
import sys reload(sys) sys.setdefaultencoding('utf8')
只在程序執(zhí)行時(shí)臨時(shí)生效,系統(tǒng)默認(rèn)編碼并沒有改變。
此時(shí)如果還有編碼錯(cuò)誤 ,需要用到encode(‘utf-8’),將字符串顯式聲明編碼。
字符串.encode('utf-8')
目錄文件更改
創(chuàng)建一個(gè)叫 sitecustomize.py的文件,因?yàn)閜ython在啟動(dòng)的時(shí)候會去加載這個(gè)文件,如果要修改一些啟動(dòng)的變量就可以把操作寫在這個(gè)文件。
- 第一步:
在python安裝目錄的Lib\site-packages文件夾下新建一個(gè)sitecustomize.py文件
- 第二步:
在sitecustomize.py填寫如下代碼
# encoding=utf8 import sys reload(sys) sys.setdefaultencoding('utf8')
python2.7永久地將默認(rèn)編碼設(shè)置為utf-8
網(wǎng)上推薦了兩種方法
- 第一個(gè)方法<不推薦>:
編輯site.py, 修改setencoding()函數(shù), 強(qiáng)制設(shè)置為 utf-8
- 第二個(gè)方法<推薦>:
增加一個(gè)名為 sitecustomize.py, 推薦存放的路徑為 site-packages 目錄下
sitecustomize.py 是在 site.py 被import 執(zhí)行的,因?yàn)?sys.setdefaultencoding() 是在 site.py 的結(jié)尾處被刪除的,所以,可以在 sitecustomize.py 使用 sys.setdefaultencoding().
#file name: sitecustomize.py import sys sys.setdefaultencoding(‘utf-8')
既然 sitecustomize.py 能被自動(dòng)加載, 所以除了設(shè)置編碼外, 也可以設(shè)置一些其他的東西.
實(shí)踐
- python2.7 sys.setdefaultencoding()報(bào)錯(cuò),說不存在setdefaultencoding
- 但是這個(gè)問題大多數(shù)在python3 中拋出
- 把site.py 中的del setdefaultencoding的代碼注釋了任然無效
- 最后直接修改site.py 中setencoding()函數(shù)的encoding=‘utf-8’
- 重啟程序,歐克,不再報(bào)編碼問題
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python實(shí)現(xiàn)遠(yuǎn)程調(diào)用MetaSploit的方法
這篇文章主要介紹了Python實(shí)現(xiàn)遠(yuǎn)程調(diào)用MetaSploit的方法,是很有借鑒價(jià)值的一個(gè)技巧,需要的朋友可以參考下2014-08-08python實(shí)現(xiàn)數(shù)據(jù)分析與建模
這篇文章主要介紹了python實(shí)現(xiàn)數(shù)據(jù)分析與建模功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07Python Pytorch深度學(xué)習(xí)之圖像分類器
今天小編就為大家分享一篇關(guān)于Pytorch圖像分類器的文章,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-10-10python?numpy?中l(wèi)inspace函數(shù)示例詳解
這篇文章主要介紹了python?numpy?中l(wèi)inspace函數(shù),本文我們通過示例學(xué)習(xí)了linspace函數(shù),如果你熟悉NumPy,一定也注意到還有np.arange函數(shù),兩者最大差異是,linspace能夠精確控制終止值終值,而arange能夠更直接地控制序列中值之間的增量,需要的朋友可以參考下2023-03-03用Python的Flask框架結(jié)合MySQL寫一個(gè)內(nèi)存監(jiān)控程序
這篇文章主要介紹了用Python的Flask框架結(jié)合MySQL些一個(gè)內(nèi)存監(jiān)控程序的例子,并且能將結(jié)果作簡單的圖形化顯示,需要的朋友可以參考下2015-11-11Python正則表達(dá)式匹配日期與時(shí)間的方法
這篇文章主要介紹了Python正則表達(dá)式匹配日期與時(shí)間的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07