python2.7
預設字元編碼是ascii
格式,即使指定字元編碼為utf-8也未必能夠輸出中文,測試如下:
1
2
3
4
5
#_*_coding:utf-8_*_
# 定義乙個變數內容為中文,字符集為utf-8
temp
=
"中文"
# 輸出變數temp的內容
print
(temp)
用win下的dos視窗執行這個指令碼,看看輸出出來的是否為中文
c:\users\anshe>python f:\python_code\sublime\day02\print.py這是為什麼呢?其實是因為dos視窗的字元編碼是涓枃 #輸出出來的是亂碼
gbk
的(如下圖),規定輸出的字符集必須是gbk的,所以輸出出來的中文即為亂碼。
注意我是用的是python2.7.11
12
c:\users\anshe>python
-
v
python
2.7
.
11
使用pycharm
或者sublime
的python ide
輸出中文流程
流程中文說明:
py scripts頭部指定編碼格式為utf-8
—>ide把預設的ascii格式編碼成utf-8
—->ide終端輸出中文
1
2
3
4
5
# _*_ coding:utf-8 _*_
# 定義乙個變數內容為中文,字符集為utf-8
temp
=
"中文"
# 輸出變數temp的內容
print
(temp)
輸出的內容:
既然這樣,python的編碼能夠把ascii
編碼還換成utf-8
那麼肯定也就可以轉換成gbk
編碼,流程如下:
**如下:
1
2
3
4
5
6
7
8
9
# _*_ coding:utf-8 _*_
# 定義乙個變數內容為中文,字符集為utf-8
temp
=
"中文"
# 解碼,需要指定原來是什麼編碼
temp_unicode
=
temp.decode(
"utf-8"
)
# 編碼,需要指定要轉換成什麼編碼
temp_gbk
=
temp_unicode.encode(
"gbk"
)
# 輸出轉換成的gbk編碼
print
(temp_gbk)
dos視窗執行測試:
1
2
c:\users\anshe>python f:\python_code\sublime\day02\
print
.py
中文
另外一種方法:
**:1
2
3
4
5
6
7
8
# _*_ coding:utf-8 _*_
# 定義乙個變數內容為中文,字符集為utf-8
temp
=
"中文"
# 解碼,需要指定原來是什麼編碼
temp_unicode
=
temp.decode(
"utf-8"
)
# 輸出轉換成的gbk編碼
print
(temp_unicode)
# windows終端需要gbk,dos自動轉換成gbk
c:\users\anshe>python f:\python_code\sublime\day02\print.py大概流程也就像下面的圖一樣中文
python3移除了unicode字符集的型別,預設使用utf-8,還有一種也可以在dos終端輸出中文的方法,**如下:
# _*_ coding:utf-8 _*_dos視窗輸出的就是中文了,雖然我也不知道是什麼意思print(u"中文")
1
2
c:\users\anshe>python f:\python_code\sublime\day02\
print
.py
Python全棧之路系列之元組資料型別
元組 tuple 和列表的唯一區別就是列表可以更改,元組不可以更改,其他功能與列表一樣 建立元組的兩種方法 第一種ages 11,22,33,44,55 第二種 ages tuple 11,22,33,44,55 如果元祖內只有乙個元素,那麼需要加上乙個逗號,否則就變成字串了。in 1 t 1 in...
Python全棧之路系列之賦值與運算子
在繼續下面的文章之前我們先來瀏覽一下python為我們提供的幾種運算子,定義兩個變數,分別是a和b,a的值是10,b的值是20。運算子描述例項 加,兩個物件相加 a b 30 減,兩個物件相減,可能會得到負數 a b 10 乘,兩數相稱或是返回乙個被重複若干次的字串 a b 200 除,兩個物件相除...
python全棧之路系列之賦值與運算子
在繼續下面的文章之前我們先來瀏覽一下python為我們提供的幾種運算子,定義兩個變數,分別是a和b,a的值是10,b的值是20。運算子描述例項 加,兩個物件相加 a b 30 減,兩個物件相減,可能會得到負數 a b 10 乘,兩數相稱或是返回乙個被重複若干次的字串 a b 200 除,兩個物件相除...