Python2中print字符串含有漢字無法正常顯示
阿新 • • 發佈:2018-12-28
接下來 就是 article 打破 .net ada cmd 亂碼 一個 demo1
Ubuntu16,Python2,且安裝過中文語言什麽的。
#!usr/bin/python
# -*- coding: utf-8 -*-
a = "我就是中文啊"
print("a:",a)1234 輸出就是: (‘a:‘, ‘\xe6\x88\x91\xe5\xb0\xb1\xe6\x98\xaf\xe4\xb8\xad\xe6\x96\x87\xe5\x95\x8a‘)1 各種嘗試,encode和decode,都不行!咦,為啥呢?
後來才知道,Python2和Python3的輸出真的不是一樣的哎! Python2中的print加了括號之後,前面有字符串,再加逗號,再加帶有中文的字符串變量就是會亂碼! 這種組合就是不行,所以只能打破這種組合,比如說下面這種: #!usr/bin/python
# -*- coding: utf-8 -*-
a = "我就是中文啊"
print a1234 輸出:
可以看出來,沒有問題 可見並不是Ubuntu的終端不能正確顯示中文的問題,而是我的操作不對,但是上面的操作很明顯不能滿足我的所有要求,我的字符串變量應該要和字符串的說明一起出現,才比較方便觀看。
我們來看看接下來的操作: #!usr/bin/python
# -*- coding: utf-8 -*-
a = "我就是中文啊"
print "a:%s"%a
#這裏的操作應該是Python2的正常print了,可惜我一直都用了();
#自以為這樣,不管是Python2還是python3都可以處理print函數
#至於%s的意思大家應該清楚,簡單解釋一下,%類似於取地址,s是string,字符串的意思。和c裏面的輸出原理類似。1234567 這裏的輸出如下: a:我就是中文啊
12 美滋滋,Ubuntu下是可以解決這樣的問題了。 Windows下的情況還是不一樣的! Windows下cmd中python2正確print輸出帶有漢字的字符串變量 題目起的有點長:
剛開始我在Windows下操作的時候,不管怎麽都無法顯示中文,就連上面最後一個demo都無法顯示。
百度到的答案是,Windows中cmd的自帶編碼格式不支持utf-8,得在cmd中輸入 cp65001,然後我就可以輸入下面的代碼,得到再下面的輸出了: #!usr/bin/python
# -*- coding: utf-8 -*-
a = "我就是中文啊"
print "a:%s"%a1234 這時候的輸出才是正常的: a:我就是中文啊1 也可以試試下面的操作:
先把cmd設置成cp936,對就是在cmd中輸出cp936,然後cmd會支持gbk格式。 a = "我就是中文啊"
print a.decode(‘utf-8‘).encode(‘GBK‘)12 這裏的輸出就很明顯了,會直接顯示中文 我就是中文啊1 現在發現了最終的奧妙,也就是——如果字符串中有漢字,那麽,python2不能加括號!
原文:https://blog.csdn.net/hehedadaq/article/details/81782532
# -*- coding: utf-8 -*-
a = "我就是中文啊"
print("a:",a)1234 輸出就是: (‘a:‘, ‘\xe6\x88\x91\xe5\xb0\xb1\xe6\x98\xaf\xe4\xb8\xad\xe6\x96\x87\xe5\x95\x8a‘)1 各種嘗試,encode和decode,都不行!咦,為啥呢?
後來才知道,Python2和Python3的輸出真的不是一樣的哎! Python2中的print加了括號之後,前面有字符串,再加逗號,再加帶有中文的字符串變量就是會亂碼! 這種組合就是不行,所以只能打破這種組合,比如說下面這種: #!usr/bin/python
# -*- coding: utf-8 -*-
a = "我就是中文啊"
print a1234 輸出:
可以看出來,沒有問題 可見並不是Ubuntu的終端不能正確顯示中文的問題,而是我的操作不對,但是上面的操作很明顯不能滿足我的所有要求,我的字符串變量應該要和字符串的說明一起出現,才比較方便觀看。
我們來看看接下來的操作: #!usr/bin/python
# -*- coding: utf-8 -*-
a = "我就是中文啊"
print "a:%s"%a
#這裏的操作應該是Python2的正常print了,可惜我一直都用了();
#自以為這樣,不管是Python2還是python3都可以處理print函數
#至於%s的意思大家應該清楚,簡單解釋一下,%類似於取地址,s是string,字符串的意思。和c裏面的輸出原理類似。1234567 這裏的輸出如下: a:我就是中文啊
12 美滋滋,Ubuntu下是可以解決這樣的問題了。 Windows下的情況還是不一樣的! Windows下cmd中python2正確print輸出帶有漢字的字符串變量 題目起的有點長:
剛開始我在Windows下操作的時候,不管怎麽都無法顯示中文,就連上面最後一個demo都無法顯示。
百度到的答案是,Windows中cmd的自帶編碼格式不支持utf-8,得在cmd中輸入 cp65001,然後我就可以輸入下面的代碼,得到再下面的輸出了: #!usr/bin/python
# -*- coding: utf-8 -*-
a = "我就是中文啊"
print "a:%s"%a1234 這時候的輸出才是正常的: a:我就是中文啊1 也可以試試下面的操作:
先把cmd設置成cp936,對就是在cmd中輸出cp936,然後cmd會支持gbk格式。 a = "我就是中文啊"
print a.decode(‘utf-8‘).encode(‘GBK‘)12 這裏的輸出就很明顯了,會直接顯示中文 我就是中文啊1 現在發現了最終的奧妙,也就是——如果字符串中有漢字,那麽,python2不能加括號!
原文:https://blog.csdn.net/hehedadaq/article/details/81782532
Python2中print字符串含有漢字無法正常顯示