Python指定檔案編碼的方式及區別

2021-09-20 09:50:56 字數 826 閱讀 1415

我們在寫python**的時候常常會加上如「# -*- coding:utf-8 -*」這樣的注釋,它的作用是什麼呢?

# -*- coding:utf-8 -*-的主要作用是指定檔案編碼為utf-8, 因為一般預設的是ascii碼,如果要在檔案裡面寫中文,執行時會出現亂碼,加上這句之後會把檔案編碼強制轉換為utf-8執行時會就不會出現亂碼了。

實際上,指定檔案編碼的格式有以下三種:

# coding=
# -*- coding: -*-
# vim: set fileencoding=:
標準中給出了只要滿足下面這個正規表示式的字串都有效:

\%^.*\n.∗\?#.*coding[:=]\s*[0-9a-za-z-_.]\+.*$
其中的意思就是必須包含#,且#號之前不能有字元換行等其他字元,字串中必須包含coding後面可以跟:或者=接下來就是編碼名稱。

但是為什麼通常這種方式呢?

# -*- coding: -*-
答案在pep-0263裡面有所提及,那就是emacs等編輯器使用這種方式進行編碼宣告。這樣寫可以支援多種編輯器,移植性好。所以,為了養成較好的**習慣,我們最好使用「# -*- coding: -*- 」這種方式來指定編碼格式。

python檢視檔案的編碼方式

最近在實驗樓上做練習,爬12306上的資料時,遇到了中文亂碼的問題。因為在notepad上能夠正確顯示檔案內容,但是使用sublime3開啟時,則為中文亂碼。這種亂碼問題大都是因為編碼和解碼的不匹配造成的。通過notepad可以將其他編碼下轉為utf 8的編碼方式。另外有時想確定某一檔案的編碼方式,...

python判斷檔案使用什麼編碼方式編碼的。

說明 utf相容iso8859 1和ascii,gb18030相容gbk,gbk相容gb2312,gb2312相容ascii codes utf 8 utf 16 gb18030 big5 utf 8 bom字首位元組 utf 8 bom b xef xbb xbf 獲取檔案編碼型別 def fil...

python編碼方式

檢視編碼方式 import chardet print chardet.detect str str為string 位元組序 若寫入時以mode a encoding utf 16 方式執行,則會在內容寫入前新增標誌 xff xfe 若以 mode wb encoding utf 16 方式執行,則...