我使用Twilio通過短信向我的python webapp發送電子郵件地址。但是,當我嘗試轉換包含電子郵件地址的短信主體時,我收到一個異常。將Twilio sms正文轉換爲字符串 - @符號的編碼錯誤
<type 'exceptions.UnicodeEncodeError'>, UnicodeEncodeError('ascii', u'myemail\xa1gmail.com', 13, 14, 'ordinal not in range(128)'), <traceback object at 0x10cca5f8>)
Traceback (most recent call last):
File "/base/python27_runtime/python27_lib/versions/third_party/webapp2-2.5.1/webapp2.py", line 570, in dispatch
return method(*args, **kwargs)
File "/base/data/home/apps/s~tester-sandbox/1.360113171877023968/website/sms.py", line 22, in post
from_body = str(cgi.escape(self.request.get('Body', None))).strip()
UnicodeEncodeError: 'ascii' codec can't encode character u'\xa1' in position 13: ordinal not in range(128)
我知道這是一個編碼錯誤,它在電子郵件地址中的@字符上磕磕絆絆。而谷歌搜索這個問題後,我發現
sys.setdefaultencoding("latin-1")
的建議,但簡單地取代了@有標誌....什麼是克服這種最簡單的方法是什麼?
你嘗試使用UTF-8編碼發送短信嗎? – 2012-07-06 12:58:45
我嘗試了幾種不同的編碼,但在聯繫Twilio時發現它實際上並不是一個python問題 - 回答如下。 – user714852 2012-07-07 09:41:07