一、幾種常見的
編碼格式。
1.1、ascii,用1個位元組表示。
1.2、utf-8,用1個至三個位元組表示,表示ascii碼時只占用1個位元組,ascii編碼是utf-8的子集。
1.3、utf-16,用2個位元組表示,在python
中,unicode的含義就是utf-16。
二、python原始檔的編碼與解碼,我們寫的python程式從產生到執行的過程如下:
編輯器---->源**---->直譯器---->輸出結果
2.1、編輯器決定源**
的編碼格式(在編輯器中設定)
2.2、也必須要直譯器知道源**的編碼格式(很遺憾很難從編碼的資料獲知原始檔的編碼格式)
2.3、補充:在windows下當用ultraedit把源**存成utf-8時,會在檔案中記錄bom標誌(不必祥究)這樣activepython直譯器會自動識別原始檔是utf-8格式,但是如果用eclipse編輯原始檔,雖然在編輯器中指定檔案編碼為utf-8,但是因為沒有記入bom標誌,所以必須在原始檔開始處加上#coding=utf-8,用注釋來提示直譯器原始檔的編碼方式挺有意思。
2.4、舉例:例如我們要向終端輸出"我是中國人"。
#coding=utf-8 告訴python直譯器用的是utf-8編碼,我用的是eclipse+pydev
print "我是中國人" #原始檔本身也要存成utf-8編碼
三、編碼的轉換,兩種編碼的轉換要用utf-16作為中轉站。
舉例:如果有乙個文字檔案jap.txt,裡面有內容 "私は中國人です。",編碼格式是日文編碼shift_jis,
還有乙個文字檔案chn.txt,內容是"中華人民共和國",編碼格式是中文
編碼gb2312。
我們如何
把兩個檔案裡的內容合併到一起並儲存到utf.txt中並且不顯示亂碼呢,可以採用把兩個檔案的內容都轉成utf-8格式,因為utf-8裡包含了中文編碼和日文編碼。
#coding=utf-8
try:
jap=open("e:/jap.txt","r")
chn=open("e:/chn.txt","r")
utf=open("e:/utf.txt","w")
jap_text=jap.readline()
chn_text=chn.readline()
#先decode成utf-16,再encode成utf-8
jap_text_utf8=jap_text.decode("shift_jis").encode("utf-8") #不轉成utf-8也可以
chn_text_utf8=chn_text.decode("gb2312").encode("utf-8")#編碼方式大小寫都行utf-8也一樣
utf.write(jap_text_utf8)
utf.write(chn_text_utf8)
except ioerror,e:
print "open file error",e
四、tk庫支援ascii,utf-16,utf-8
#coding=utf-8
from tkinter import *
try:
jap=open("e:/jap.txt","r")
str1=jap.readline()
except ioerror,e:
print "open file error",e
root=tk()
label1=label(root,text=str1.decode("shift_jis")) #如果沒有decode則顯示亂碼
label1.grid()
root.mainloop()
Python學習筆記 1 1 2 認識Python
一.課程目標 二.詳情解讀 1.初識pythonpython語言是一種高階程式語言,它於1991年由吉多.範羅蘇姆 guido van rossum 發明。目前主要應用於web開發 gui開發 網路爬蟲 資料科學 人工智慧等領域。python官方 python語言也是一種多正規化程式語言,即物件導向...
python學習方法 十二種學習Python的方法
python學習方法 python是地球上最流行的程式語言之一。它被世界各地的開發商和製造商所接受。大多數linux和macos計算機都預裝了python版本,現在,即使是少數windows計算機 商也正在安裝python。也許您參加聚會遲到了,您想學習但不知道該去 這12個資源將幫助您入門,並逐步...
pytho學習旅途
轉換當前格式日期 dt datetime.datetime.strptime dtstr,y m d print dt 切片獲取年份 輸入一行字元,分別統計其中英文本母,空格,數,和其他字元數 import string s ww m 23 4j 初始化個數 列印楊輝三角的前十行 triange 1...