python編碼問題

2022-05-07 18:09:10 字數 1014 閱讀 8387

最進程式設計,需要用到資料庫,為了便於使用,資料庫的名稱需要使用中文,但是我在ulipad裡面程式設計,卻是無法實現,問題出在哪了?經過後來的分析,解決了這個問題,特此記錄一下。

在ulipad開發環境中,需要使用者指定編碼方式,如下:

# coding= utf-8

表示使用的是utf-8編碼。但是在這種編碼下,你在shell除錯視窗時看不到中文字元的。如輸入「我們」,在shell看到的肯定是\xe6\x88\x91\xe4\xbb\xac。

如果要在shell視窗看到中文,需要將# coding= utf-8改為# coding= gbk即可。但是問題出現了,資料庫一般預設的是utf-8編碼,如果你設定為gbk編碼

則與資料庫的不匹配,無法建立資料庫表,因此遇到這種問題,該如何了?

具體辦法是使用編碼轉換,編碼方式還是uft-8,但是對資料庫的表的名稱進行一次編碼轉換,然後在建立資料庫,這樣就可以實現用中文名稱建立資料庫,同時在資料庫中看到的也是中文。關於編碼轉換需要說到兩個函式,

字串在python內部的表示是unicode編碼,因此,在做編碼轉換時,通常需要以unicode作為中間編碼,即先將其他編碼的字串解碼(decode)成unicode,再從unicode編碼(encode)成另一種編碼。 

decode的作用是將其他編碼的字串轉換成unicode編碼,如str1.decode('gb2312'),表示將gb2312編碼的字串str1轉換成unicode編碼。 

encode的作用是將unicode編碼轉換成其他編碼的字串,如str2.encode('gb2312'),表示將unicode編碼的字串str2轉換成gb2312編碼。 

如你需要用「我們」來建立資料庫,具體如下:

str = 「我們」

tablenametmp = str .decode('gbk')

tablename = tablenametmp.encode('utf-8')

這樣就可以滿足了,create table tablename(id int);進入資料庫,看到的就是已「我們」命名的資料庫了。

Python編碼問題

tag python,encoding,unicode 現有的字元編碼 ascii,gbk,gb2312,utf 8,unicode.unicode可以用來表示所有語言的字元,而且是定長雙位元組 也有四位元組的 編碼,包括英文本母在內。python中定義乙個unicode字串和定義乙個普通字串一樣簡...

python編碼問題

python裡面基本上要考慮三種編碼格式 1 原始檔編碼 在檔案頭部使用coding宣告。告訴python直譯器該 檔案所使用的字符集。usr bin python coding utf8 2 內部編碼 檔案中的字串,經過decode以後,被轉換為統一的unicode格式的內部資料,類似於u uni...

Python編碼問題

python裡面基本上要考慮三種編碼格式 1 原始檔編碼 在檔案頭部使用coding宣告。告訴python直譯器該 檔案所使用的字符集。usr bin python coding utf8 2 內部編碼 檔案中的字串,經過decode以後,被轉換為統一的unicode格式的內部資料,類似於u uni...