日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

解決python中文亂碼問題方法總結

瀏覽:44日期:2022-06-20 15:13:58

在運行這樣類似的代碼:

#!/usr/bin/env pythons='中文'print s

最近經常遇到這樣的問題:

問題一:

SyntaxError: Non-ASCII character ’xe4’ in file E:codingpythonUntitled 6.py on line 3, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

問題二:

UnicodeDecodeError: ’ascii’ codec can’t decode byte 0xe5 in position 108: ordinal not in range(128)

問題三:

UnicodeEncodeError: ’gb2312’ codec can’t encode character u’u2014’ in position 72366: illegal multibyte sequence

這些都是跟字符編碼有關的問題,很郁悶,中文總是弄不出來,找了很多方案,這里有些是我前幾天找到的一些方案,拿出來給大家分享一下哈

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

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

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

在某些IDE中,字符串的輸出總是出現亂碼,甚至錯誤,其實是由于IDE的結果輸出控制臺自身不能顯示字符串的編碼,而不是程序本身的問題。

如在UliPad中運行如下代碼:

s=u'中文'print s

會提示:

UnicodeEncodeError: ’ascii’ codec can’t encode characters in position 0-1: ordinal not in range(128)

這是因為UliPad在英文WindowsXP 上的控制臺信息輸出窗口是按照ascii編碼輸出的(英文系統的默認編碼是ascii),而上面代碼中的字符串是Unicode編碼的,所以輸出時產生了錯誤。

將最后一句改為:print s.encode(’gb2312’)

則能正確輸出“中文”兩個字。

若最后一句改為:print s.encode(’utf8’)

則輸出:xe4xb8xadxe6x96x87,這是控制臺信息輸出窗口按照ascii編碼輸出utf8編碼的字符串的結果。

下面代碼可能比較通用一些,如下:

#!/usr/bin/env python #coding=utf-8 s='中文'if isinstance(s,unicode): #s=u'中文' print s.encode(’gb2312’) else: #s='中文' print s.decode(’utf-8’).encode(’gb2312’)#!/usr/bin/env python#coding=utf-8s='中文'if isinstance(s,unicode): #s=u'中文' print s.encode(’gb2312’)else: #s='中文' print s.decode(’utf-8’).encode(’gb2312’)

看看下面一段代碼:

#!/usr/bin/env python #coding=utf-8 #python version:2.7.4 #system:windows xp import httplib2def getPageContent(url): ’’’’’ 使用httplib2用編程的方式根據url獲取網頁內容 將bytes形式的內容轉換成utf-8的字符串 ’’’ #使用ie9的user-agent,如果不設置user-agent將會得到403禁止訪問 headers={’user-agent’:’Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)’, ’cache-control’:’no-cache’} if url: response,content= httplib2.Http().request(url,headers=headers) if response.status== 200 : return content

import sys reload(sys) sys.setdefaultencoding(’utf-8’) #修改默認編碼方式,默認為ascci print sys.getdefaultencoding() content= getPageContent('http://www.oschina.net/')print content.decode(’utf-8’).encode(’gb2312’)#!/usr/bin/env python#coding=utf-8#python version:2.7.4#system:windows xpimport httplib2def getPageContent(url): ’’’ 使用httplib2用編程的方式根據url獲取網頁內容 將bytes形式的內容轉換成utf-8的字符串 ’’’ #使用ie9的user-agent,如果不設置user-agent將會得到403禁止訪問 headers={’user-agent’:’Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)’, ’cache-control’:’no-cache’} if url: response,content= httplib2.Http().request(url,headers=headers) if response.status== 200 : return content

import sysreload(sys)sys.setdefaultencoding(’utf-8’) #修改默認編碼方式,默認為ascciprint sys.getdefaultencoding()content= getPageContent('//www.jb51.net/')print content.decode(’utf-8’).encode(’gb2312’)

上面的代碼的意思:向www.jb51.net網站請求他的主頁,(如果直接是utf-8編碼,不能輸出中文)想將編碼方式為utf-8轉向gd2312,出現問題三

當我把它將print content.decode(’utf-8’).encode(’gb2312’)改成print content.decode(’utf-8’).encode(’gb2312’, ‘ignore’)時,OK了,可以顯示中文了,但不敢確定是否為全部,貌似只有部分吧,有些不能用gb2312編碼

然而,當我把網站換成 www.soso.com時,不用轉為gb2312,用utf-8即可正常顯示中文

總結一下:

向文件直接輸出ss會拋出同樣的異常。在處理unicode中文字符串的時候,必須首先對它調用encode函數,轉換成其它編碼輸出。這一點對各個環境都一樣。在Python中,“str”對象就是一個字節數組,至于里面的內容是不是一個合法的字符串,以及這個字符串采用什么編碼(gbk, utf-8, unicode)都不重要。這些內容需要用戶自己記錄和判斷。這些的限制也同樣適用于“unicode”對象。要記住“unicode”對象中的內容可絕對不一定就是合法的unicode字符串,我們很快就會看到這種情況。在windows的控制臺上,支持gbk編碼的str對象和unicode編碼的unicode對象。

更多關于解決python中文亂碼問題方法總結的文章請查看下面的相關鏈接

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
在线一区二区三区视频| 精品精品99| 精品日韩在线| 亚洲欧洲av| 影音先锋国产精品| 日韩精品欧美| 精品久久美女| 国产一区2区在线观看| 视频一区二区中文字幕| 在线综合欧美| 美国三级日本三级久久99 | 午夜欧美巨大性欧美巨大| 肉色欧美久久久久久久免费看| 欧美一区二区性| 黄色免费成人| 蜜臀精品久久久久久蜜臀| 日韩精品亚洲专区| 中文在线а√天堂| 美女久久一区| 精品国产中文字幕第一页| 国产色播av在线| 亚洲精品欧洲| 精品亚洲a∨| 好看不卡的中文字幕| 国产日产精品_国产精品毛片| 色天使综合视频| 日韩在线网址| 亚洲高清成人| 欧美国产中文高清| 免费看黄色91| 国产精品成人一区二区网站软件| 国产精品久久久久av电视剧| 91精品视频一区二区| 久久亚洲在线| 精品国产麻豆| 日韩欧美三区| 久久精品动漫| 亚洲精品影院在线观看| 精品三级国产| 福利一区二区| 亚洲久久在线| 黄色aa久久| 国产日韩专区| 欧美a级一区二区| 亚洲一区激情| 国产一区二区精品久| 日本强好片久久久久久aaa| 视频一区国产视频| 欧美日韩国产高清| 精品美女视频 | 久久国内精品| 亚洲精品123区| 亚洲不卡av不卡一区二区| 综合日韩av| 91精品精品| 国产亚洲久久| 好吊一区二区三区| 亚洲手机在线| 亚洲精品**中文毛片| 久久久久国产| 亚洲天堂久久| 国产精品嫩草99av在线| 亚洲精品123区| 青青青免费在线视频| 欧美精品成人| 免费精品一区| 国产精品探花在线观看| 免费一级片91| 亚洲精品99| 亚洲成人va| 波多野结衣久久精品| 久久久久国产精品一区二区| 亚洲性图久久| 91精品亚洲| 亚洲手机在线| 免费不卡在线视频| 欧美视频久久| 欧美www视频在线观看| 日韩深夜视频| 中文在线一区| 蜜桃av一区二区三区电影| 久久亚洲精品中文字幕蜜潮电影| 亚洲黄色免费av| 蜜臀av性久久久久蜜臀aⅴ流畅 | 99视频精品| 久久午夜精品| 亚洲精品第一| 欧美日韩夜夜| 青青久久av| 亚洲91在线| 成人在线免费观看网站| 久久青青视频| 亚洲综合色婷婷在线观看| 国产精品天堂蜜av在线播放| sm捆绑调教国产免费网站在线观看| 99久久夜色精品国产亚洲狼| 国产午夜精品一区二区三区欧美| 亚洲夜间福利| 亚洲人成毛片在线播放女女| 日韩av免费大片| 国产精品嫩模av在线| 久久久久久久久久久妇女| 亚洲v天堂v手机在线| 国产69精品久久| 91av一区| 久久久久久婷| 国产精品一区高清| 午夜日韩在线| 亚洲91在线| 99精品99| 色婷婷精品视频| 国产亚洲观看| 韩国精品主播一区二区在线观看| 国产精品1luya在线播放| 日本一区中文字幕| 色婷婷精品视频| 在线精品福利| 国产中文字幕一区二区三区| 精品中文在线| 婷婷五月色综合香五月| 久久天堂成人| 91精品国产91久久久久久黑人| 国产视频一区二| 久久狠狠久久| 久久国产乱子精品免费女| 日韩高清在线不卡| 欧美日韩高清| 青草av.久久免费一区| 久久在线电影| 欧美国产一级| 麻豆精品视频在线| 亚洲免费一区三区| 亚洲激情偷拍| 日韩一区二区免费看| 噜噜噜躁狠狠躁狠狠精品视频 | 日韩高清在线不卡| 四虎成人av| 久久不卡日韩美女| 国产精品三p一区二区| 深夜日韩欧美| 日韩精品中文字幕吗一区二区| 日韩视频精品在线观看| 激情婷婷综合| 欧美日韩在线二区| 999国产精品视频| 婷婷亚洲五月| 日韩午夜一区| 日av在线不卡| 欧美一区成人| 婷婷视频一区二区三区| 亚洲小说春色综合另类电影| 色老板在线视频一区二区| 激情视频一区二区三区| 亚洲一区二区三区四区五区午夜 | 日韩av有码| 亚洲四虎影院| 亚洲一区免费| 精品视频高潮| 日韩在线黄色| 日韩av首页| 久久精品一区二区国产| 精品国产亚洲一区二区三区在线| 日韩网站中文字幕| 日本一区二区中文字幕| 国产免费久久| 日韩亚洲一区在线| 精品一区亚洲| 欧美精品国产| 久久精品影视| 国产精品日本一区二区三区在线| 中文在线а√在线8| 亚洲深深色噜噜狠狠爱网站| 国产欧美三级| 国产理论在线| 欧美另类综合| 蜜桃精品视频| 99在线精品视频在线观看 | 久久久久国产精品一区三寸| 丝袜亚洲另类欧美| 国产在线视频欧美一区| 亚洲欧美日韩精品一区二区| 国产精品久久久久久久久久10秀| 久久最新视频| 日韩免费小视频| 免费亚洲婷婷| 99视频精品| 日韩久久视频| 国产精品毛片aⅴ一区二区三区| 日韩成人精品一区| 日韩久久一区| 亚洲资源av| www.九色在线| 国产乱子精品一区二区在线观看 | 日韩激情一区| 91大神在线观看线路一区| 欧美日韩午夜| 卡一卡二国产精品| 99精品在线免费在线观看| 蜜桃视频欧美| 欧美手机在线|