學習python的時候,發現寫**都要在開始一行加上# coding=utf-8,不然在pycharm裡面有中文注釋或者**裡面有中文的話編輯**就會報錯,關於寫python**得在第一行宣告編碼格式的原因,上網搜尋了一下:
**一、# coding=utf-8的作用**
開頭的coding=utf-8和coding:utf-8的作用是一樣的。作用是宣告python**的文字格式是utf-8,python按照utf-8的方式來讀取程式。如果不加這個宣告,無論**中還是注釋中有中文都會報錯。
以下兩種寫法是等價的:
# coding=utf-8
# coding:utf-8
# 注意一點無論中間是:還是=,其中coding與它們之間都不能有空格。否則也會報錯。
# encoding: utf-8
以上知識點引用於 (侵權必刪)
二、python的編碼格式
python直譯器預設使用的是unicode編碼,但由於unicode編碼是兩個位元組表示乙個字元,與ascii編碼的乙個位元組(ascii碼最多只能表示2^7=128個字元,因為其最高位總是0)表示相比就很浪費計算機資源,所以python直譯器實際儲存用的是utf-8編碼(utf-8編碼中英文用乙個位元組表示,中文用三個位元組表示)。
三、python生成文字檔案出現亂碼問題
在python**中生成文字檔案,往文字檔案裡面寫入中文資料,有時候會發現檔案裡面顯示亂碼,原因是開啟文字檔案時預設的編碼格式是gbk,而python直譯器預設使用的編碼格式是unicode,所以當文字檔案裡面有中文的時候會出現亂碼問題.
以上內容是為了做個筆記,錯誤之處懇請指出,謝謝
python編碼格式問題
今天由於用python寫指令碼時,讀取txt檔案出現問題,查了半天,由此出這貼 ansi編碼 即當前作業系統使用的編碼,可在cmd下用chcp命令檢視,活動頁936為 gbk編碼,簡體中文 utf 8編碼 讀取 有bom的utf 8編碼檔案 open方法傳入引數 encoding utf 8 sig...
幾種常見的編碼格式
計算機中儲存資訊的最小單元是乙個位元組,即8個bit,所以能表示的字元範圍是0 255個 人類要表示的符號太多,無法用乙個位元組來完全表示 要解決這個矛盾必須要有乙個新的資料結構char,從char到byte必須編碼。目前常用的編碼方式有ascii iso8859 1 gb2312 gbk utf ...
python中字元,位元組,編碼格式等問題總結
一直以來,對python中的字元,位元組,編碼格式理解的懵懵懂懂的,遇到問題總是搞不清楚,最近看一些網路傳輸方面的知識時,剛好要用到這些知識,總結一下以備以後複習。首先說byte,也叫位元組,乙個位元組是8個bit。在python中,最小的資料儲存單位就是位元組,ascii碼中字元在python中都...