| Проблема с unicode |
[21 Jan 2009|01:59am] |
Добрый вечер! Я в Python я новичек, поэтому просьба особо не злится, т.к., чувствую, вопрос заезжанный. Но в гугле ответа так и не нашел. Проблема: есть простая программка на Питоне, которая запрашивает xml файл с удаленного сервера, парсит и после этого отсылает по джабберу некоторые данные людям, которые указаны в xml: Код:
# -*- coding: utf-8 -*-
from BeautifulSoup import BeautifulSoup import sys,os,xmpp,urllib
jid="login@gmail.com" pwd="password"
jid=xmpp.protocol.JID(jid) cl=xmpp.Client(jid.getDomain(),debug=[]) cl.connect() cl.auth(jid.getNode(),pwd)
result = urllib.urlopen("http://server.com/file.xml").read() xml = BeautifulSoup(result) for item in xml.findAll('item'): if (item.type.string == 'jabber'): cl.send(xmpp.protocol.Message(item.recipient.string, item.message.string))
cl.disconnect()
На локальной машине(MacOS X) все работает замечательно, но стоило загрузить скрипт на удаленный сервер под Ubuntu8.04 x64 и получил следующее:
kolger@server:~/jabber$ python send.py Traceback (most recent call last): File "send.py", line 23, in <module> cl.send(xmpp.protocol.Message(item.recipient.string, item.message.string)) File "/usr/lib/python2.5/site-packages/xmpp/protocol.py", line 418, in __init__ if body: self.setBody(body) File "/usr/lib/python2.5/site-packages/xmpp/protocol.py", line 431, in setBody self.setTagData('body',val) File "/usr/lib/python2.5/site-packages/xmpp/simplexml.py", line 243, in setTagData except: self.addChild(tag,attrs,payload=[ustr(val)]) File "/usr/lib/python2.5/site-packages/xmpp/simplexml.py", line 30, in ustr try: r=what.__str__() UnicodeEncodeError: 'ascii' codec can't encode character u'\u0412' in position 0: ordinal not in range(128)
По запросу "UnicodeEncodeError: 'ascii' codec can't encode character" в гугле много всего, но ни одного ответа как это пофиксить. Буду признателен за любую помощь или ссылку. Спасибо большое.
|
|