python郵件亂碼
1. python 發郵件亂碼的幾種解決方法
打開python的Lib文件夾下的mimetypes.py文件,找到大概256行的
『default_encoding=sys.getdefaultencoding()』。
在這行前面添加三行,並且注釋4行代碼
#try:
#ctype=ctype.encode(default_encoding)#omitin3.x!
#exceptUnicodeEncodeError:
#pass
else:
yieldctype
i+=1
ifsys.getdefaultencoding()!='gbk':
reload(sys)
sys.setdefaultencoding('gbk')
default_encoding=sys.getdefaultencoding()
2. Python中中文亂碼問題
a ='哈哈'
b = a.encode('utf-8')
以上你的代碼是UTF8編碼吧,a本來就是UTF8編碼,你在給它編碼幹嘛,encode是編碼,decode是解碼,你不報錯沒天理。
a = u'哈哈'
b = a.encode('utf-8')
a是U編碼類型也就是你上一個沒加U的哈哈的解碼,它肯定不會保存!
3. python發送郵件,網頁接收正常,Foxmail附件亂碼
應該是編碼的問題……說不定發送英文或者數字的能夠正常呢?
好吧,其實我也不太清楚
不過我關注的不是這個,而是放在文件夾下的方法太蛋疼了。
弄個拖動的吧,這樣就可以放在%userprofile%\AppData\Roaming\Microsoft\Windows\SendTo文件夾下,直接「發送到」了,getfile用於接收文件路徑。
try:
#得到拖動的文件路徑
getfile = sys.argv[1]except Exception, e:
#用正常方式打開
getfile = raw_input('輸入完整路徑獲取附件(拖動文件到控制台窗口):')filename = os.path.basename(getfile) #從路徑獲取文件名
對了,別忘記把.py後綴改成.pyw,消除黑色窗口……
還有弄個
import ctypes#……#結束後彈出提示對話框text = filename + '\n' + 'Successfully sent to ' + msg['to']ctypes.windll.user32.MessageBoxA(0, text, '', 0)#……
來吧,可勁地折騰吧。
4. 執行python腳本出現亂碼怎麼解決
執行python腳本出現亂碼的解決方法:首先把中文解碼為unicode,具體方法如:【decode('utf-8')】;然後再轉化為gbk即可,具體方法如:【encode('gbk')】。
問題:
代碼中指定了UTF-8編碼,但是在cmd命令行窗口時列印的中文仍然會亂碼。
(推薦教程:Python入門教程)
原因:
windows下中文默認的輸出編碼為gbk ,與腳本中定義的UTF-8不一樣,所以出現了解碼失敗的情況。
解決方法:
可以先把中文解碼為unicode,然後再轉化為gbk來解決這個問題。
舉例:
運行結果:
5. 怎麼解決Python3亂碼問題
如果是Python文件用編輯器打開時出現亂碼,將編輯器調試成utf-8或者gb2312顯示。如果是運行Python文件時顯示亂碼,則修改Python文件,在文件頂部添加:#
code
=
utf-8
6. python 中文亂碼問題
記事本是用utf-8保存你下載了東西的。你下載下來的不是utf-8,保存下來中文當然就亂碼了。而gbk和utf-8里英文的編碼值都一樣,所以不受影響。
一個方法是你留意下目標頁面的charset 和 contentType,另一個方法是你復制一個目標頁面的字,放cmd里看它的編碼長度,以此來判斷它的原來編碼。
7. 用Python發郵件的時候,附件文件名如果是中文,接受到的總是亂碼,如何解決謝大神解答!
'attachment; filename="中文.txt"'.decode('utf-8')
在每個python 的中文字元後面加.decode('utf-8')看看?
8. python異常亂碼如何解決
如果頁面是GB18030編碼,而資料庫是GBK編碼,一般來說是不用轉換的。GB18030是GBK的超級。GB18030本身兼容GBK,而GB18030中的部分字元GBK中是沒有的。將GB18030字元寫入GBK的資料庫,只會丟失部分字元而已。一般網頁上不會出現罕見的字元,所以這種情況是無需處理的。
所以,請仔細核對頁面和資料庫的編碼。
即使你提供的頁面、資料庫編碼是正確的,而且一定要轉換,也應該這樣做:
s='GB18030字元串'
s=s.decode('GB18030')#轉化為unicode
s=s.encode('GBK')#轉化為GBK
9. python 收取郵件都是亂碼。
一般郵件在傳輸的時候都會被編碼,圖中的是base64編碼的特徵,這類編碼是可逆的,只需要進行base64解碼即可,python有個base64模塊,可以用來編碼和解碼。
10. python 亂碼的問題
html = a.read()
這一步之後應當解碼一下
這樣就不會有亂碼了,解碼的編碼要看網頁源碼中指定的編碼