解決Python2操作中文名檔案亂碼的問題

2021-08-10 00:15:04 字數 912 閱讀 1313

python2預設是不支援中文的,一般我們在程式的開頭加上#-*-coding:utf-8-*-來解決這個問題,但是在我用open()方法開啟檔案時,中文名字卻顯示成了亂碼。

我先給大家說說python中的編碼問題,python中的字串的大概分為為str和unicode兩種形式,其中str常用的編碼型別為utf-8,gb2312,gbk等等,python使用unicode作為編碼的基礎型別。str記錄的是位元組陣列,只是某種編碼的儲存格式,終於輸出到檔案或是列印出來是什麼格式,完全取決於其解碼的編碼將他解碼成什麼樣子;unicode是一種類似於符號集的抽象編碼,它只規定了符號的二進位制**,卻沒有規定這個二進位制**該如何儲存,也就是它只是一種內部表示,不能直接儲存,所以儲存時需要規定一種儲存形式,比如utf-8等。

python中有編碼轉換的函式有:

decode(char_set) 實現char_set解碼成unicodeencode(char_set) 實現unicode編碼成char_set

檢視python文件會發現:

open(filename, 'w')這個方法中,filename這個引數必須是unicode編碼的引數。

我之前加上#-*-coding:utf-8-*-將編碼設定為utf-8,當呼叫這個方法往裡傳引數時,需要將這個變數filename解碼成unicode。

比如filename='中文.txt',使用open()時,這樣寫open(filename.decode('utf-8'), 'w'),這樣建立的中文檔名就沒有亂碼問題了。

以上**

話說,這是windows 的py2中遇到的問題,在ubuntu系統中卻不會出現。

完美解決Python2操作中文名檔案亂碼的問題

python2預設是不支援中文的,一般我們在程式的開頭加上 coding utf 8 來解決這個問題,但是在我用open 方法開啟檔案時,中文名字卻顯示成了亂碼。我先給大家說說python中的編碼問題,python中的字串的大概分為為str和unicode兩種形式,其中str常用的編碼型別為utf ...

完美解決Python2操作中文名檔案亂碼的問題

python2預設是不支援中文的,一般我們在程式的開頭加上 coding utf 8 來解決這個問題,但是在我用open 方法開啟檔案時,中文名字卻顯示成了亂碼。我先給大家說說python中的編碼問題,python中的字串的大概分為為str和unicode兩種形式,其中str常用的編碼型別為utf ...

Python2操作中文名檔案亂碼解決方案

python2預設是不支援中文的,一般我們在程式的開頭加上 coding utf 8 來解決這個問題,但是在我用open 方法開啟檔案時,中文名字卻顯示成了亂碼。我先給大家說說python中的編碼問題,python中的字串的大概分為為str和unicode兩種形式,其中str常用的編碼型別為utf ...