→ suzuke:decode('big5') 07/25 14:02
會出現
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1
※ 編輯: onionys 來自: 219.85.28.169 (07/25 18:03)
→ kenzou:encode('big5') 07/25 18:14
試了一下,同樣的程式在不同環境結果不太一樣...Orz...
簡易程式碼如下:
----------------------------------------------------------------------------
#!/usr/bin/python
#-*- coding: utf8 -*-
from lxml.html import parse
def fromYahooStock(stoNum):
qurl = 'http://tw.stock.yahoo.com/q/q?s=' + str(stoNum)
root = parse(qurl).getroot()
temp = root.xpath('/html/body/center/table/tr/td/table/tr/td/a')[0]
print temp.text
if __name__ == "__main__":
fromYahooStock(1201) #還我味全龍~~~
-----------------------------------------------------------------------------
字串為"1201味全",然後在下面兩個環境下跑的話....
測試環境
OS: Mac OSX 10.6.8
python: 2.7.1
lxml: 2.2.8
得到結果: 出現亂碼...
得到的字串: u'1201\xa8\xfd\xa5\xfe'
解決方法: ...Orz...正在找...
----------------------------------------
OS: Debian 6
python: 2.6.6
lxml: python-lxml 2.2.8-2
得到結果: 一切正常...
得到的字串: u'1201\u5473\u5168'
解決方法: 一切正常...
※ 編輯: onionys 來自: 219.85.28.169 (07/25 19:10)
→ suzuke:decode('big5','ignore') ? 07/25 21:07
→ onionys:encode('big5')和decode('big5')都會出現 07/25 21:33
→ onionys:'ascii' codec can't encode characters in position... 07/25 21:34
→ suzuke:加了'ignore' 也會? 07/25 21:51
→ onionys:加了'ignore',錯誤訊息就不會出現了,但是得到的字串 07/25 22:41
→ onionys:變成了'1201\xa2D',print 出來也是個看不懂的字...orz.. 07/25 22:41
→ scp958630:''.join([chr(ord(x)) for x in s]).decode('big5') 07/29 13:50
→ scp958630:s.encode('latin1').decode('big5') 07/29 13:52
→ onionys:感謝樓上~~成功了~~~原來可以這樣處理~~ 07/30 01:15