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 ...