[python] XMLRPC a unicode

slush slush na slush.cz
Pátek Červen 12 01:58:04 CEST 2009


Zdravim,

potrebuji pristupovat k seriovemu portu pocitace A z pocittace B na
lokalni siti. Napadlo me pouzit XML-RPC jako transparentni mezivrstvu
k pyserial tak, ze se klientska aplikace (puvodne bezici na A, nyni
nove na B) temer nemusi upravovat - pouze misto lokalni instance
pyserial vytvorim klienta XMLRPC.

Zda se, ze by to i mohlo fungovat, bohuzel na port potrebuji posilat
binarni data. A zde jsem narazil na problem s kodovanim znaku u
knihovny xmlrpclib. Pri snaze zapsat binarni data mi to vrati tento
traceback:

  File "/usr/lib/python2.6/encodings/utf_8.py", line 16, in decode
    return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xff in position 0:
unexpected code byte

Data skladam nasledujicim zpusobem:
 data = chr(255)+'a'+chr(e.axis)+chr(mapped)
kde e.axis i mapped jsou 1B cisla. Jedna se tedy o obycejne ASCII.

S tim si bohuzel nevim rady, UTF jsem se v pythonu vzdy vyhybal, jako
cert krizi. Nedokaze nekdo poradit, prosim?


S pozdravem
Marek


Další informace o konferenci Python