最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python2中文處理紀(jì)要的實(shí)現(xiàn)方法

 更新時(shí)間:2018年03月10日 10:02:19   作者:俺踏月色而來  
本篇文章主要介紹了Python2中文處理紀(jì)要的實(shí)現(xiàn)方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

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

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

處理方法:

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

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

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

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

處理方法:

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

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

3、utf-8 及 gbk互相轉(zhuǎn)換

直接看代碼:

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

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

通常大小寫都可以,這不是python決定的,是系統(tǒng)的語言代碼設(shè)定決定的。

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

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

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

6、print打印出來的結(jié)構(gòu)中的漢字是亂碼

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

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

但是如果用了接續(xù)顯示,比如:

print a,
#將會顯示亂碼

如果是其它結(jié)構(gòu),諸如dict / list / class等,都會出現(xiàn)亂碼。

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

這種情況使用基本庫沒有什么好辦法,只能循環(huán)逐個(gè)打印內(nèi)容,比如:

...
for item in items:
print item

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

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

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

7、變量本身顯示正常,循環(huán)遍歷出來的單個(gè)字符亂碼

大多情況是因?yàn)樽址皇莡nicode編碼。聲明字符串的時(shí)候使用 a = u'漢字' 這樣方式賦值的變量都是Unicode字符串,不會有問題。

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

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

嗯,差不多就這些,想到再補(bǔ)充。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

鄂州市| 万宁市| 四川省| 旺苍县| 同德县| 福鼎市| 且末县| 锦屏县| 柘荣县| 大竹县| 台南市| 黄骅市| 潜江市| 中超| 南澳县| 五指山市| 芦山县| 临武县| 亳州市| 高阳县| 沾益县| 大理市| 平和县| 高尔夫| 镇安县| 军事| 军事| 凤台县| 泉州市| 渝中区| 晋城| 元阳县| 牙克石市| 陆良县| 文安县| 宁化县| 永修县| 九台市| 镶黄旗| 青浦区| 邹城市|