學習python處理python編碼問題

2022-09-28 04:45:12 字數 2038 閱讀 8747

概括、從python1.6開始就可以處理unicode字元了。

一、幾種常見的編碼格式。

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程式從產生到執行的過程如下:

編輯www.cppcns.com器---->源**---->直譯器---->輸出結果

2.1、編輯器決定源**的編碼格式(在編輯器中設定)

2.2、也必須要直譯器知道源**的編碼格式(很遺憾很難從編碼的資料獲知原始檔的編碼格式)

2.3、補充:在windows下當用ultraedit把源**存成utf-8時,會在檔案中記錄bom標誌(不必祥究)這樣activepython直譯器會自動識別原始檔是utf-8格式,但是如果用ecl程式設計客棧ipse編輯原始檔,雖然在編輯器中指定檔案編碼為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,內容是"中華人民共和國fdzfbqrq",編碼格式是中文編碼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處理python編碼的基本過程,希望對大家有幫助。

本文標題: 學習python處理python編碼問題

本文位址:

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