91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python2中文處理紀要的實現方法

發布時間:2020-10-23 03:29:21 來源:腳本之家 閱讀:220 作者:俺踏月色而來 欄目:開發技術

python2不是以unicode作為基本代碼字符類型,碰到亂碼的幾率是遠遠高于python3,但即便如此,相信很多人,也不想隨意的遷移到python3,這里就總結幾個我平常碰到的問題及解法。

1、文件中無法使用中文注釋

處理方法:

在代碼中增加 # -*- coding=UTF-8 -*- ,一般加在文件頭部第一行,如果第一行是腳本標志,則放在第二行(實際仍然是python正本的第一行)。

隨后將文件另存為UTF-8格式。

此方法可以解決注釋中有中文,及字符串立即數中包含中文的問題。

2、unicode中文變量打印出來是亂碼

處理方法:

文件開始引入擴展庫的部分加入以下3行代碼。

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

3、utf-8 及 gbk互相轉換

直接看代碼:

#utf-8字符串轉換成GBK(GB2312及其它編碼也是這樣用)
print str.decode('UTF-8').encode('GBK')
#gbk轉換成utf-8
print str.decode('GBK').encode('UTF-8')

4、參數中的utf-8是用大寫還是小寫?

通常大小寫都可以,這不是python決定的,是系統的語言代碼設定決定的。

5、打開utf-8的文本文件

經過1、2的設置,正常直接打開就可以,文件是什么編碼,讀出來就是什么編碼,個別仍有不行的可以使用擴展庫codecs:

import codecs
...
with codecs.open(poetry_file, "r","utf-8") as f:

6、print打印出來的結構中的漢字是亂碼

print僅打印一個utf-8的變量是不會有問題的,比如

a="漢字"
print a
#會正常顯示

但是如果用了接續顯示,比如:

print a,
#將會顯示亂碼

如果是其它結構,諸如dict / list / class等,都會出現亂碼。

a = ["中文","測試"]
print a
#將會顯示亂碼

這種情況使用基本庫沒有什么好辦法,只能循環逐個打印內容,比如:

...
for item in items:
print item

或者整合輸出,比如: print ', '.join(a)

還可以使用第三方的包,比如:

import uniout
...
listnine = ['梨', '橘子', '蘋果', '香蕉']
print 'listnine list: %s' % listnine

7、變量本身顯示正常,循環遍歷出來的單個字符亂碼

大多情況是因為字符串不是unicode編碼。聲明字符串的時候使用 a = u'漢字' 這樣方式賦值的變量都是Unicode字符串,不會有問題。

如果是從外部傳入的變量,源頭情況又不知道,可以嘗試轉換成Unicode字符串:

str=unicode(str,"utf-8");

嗯,差不多就這些,想到再補充。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

莱州市| 南通市| 湖口县| 巴彦县| 临城县| 南投市| 舟曲县| 淮北市| 尼勒克县| 铜鼓县| 上饶市| 定兴县| 博客| 石棉县| 凤台县| 景泰县| 双辽市| 闵行区| 沅江市| 新巴尔虎左旗| 丰都县| 伊金霍洛旗| 宣恩县| 尤溪县| 江油市| 岑溪市| 伽师县| 类乌齐县| 航空| 青州市| 阳信县| 湖州市| 泰和县| 惠来县| 文昌市| 永修县| 广宗县| 观塘区| 罗江县| 宁安市| 马公市|