Форум сайта python.su
у меня есть вот такая строка u'\xb8\x0c' и я пытаюсь слать :
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 552, in __bootstrap_inner
self.run()
File "f8.py", line 283, in run
sock.send(size)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xb8' in position 0: ordinal not in range(128)
Отредактировано (Март 2, 2012 13:58:32)
Офлайн
.encode('utf8') например
Офлайн
>>> u'\x00\x01\xff'.encode('utf-8')
'\x00\x01\xc3\xbf'
>>> u'\x00\x01\xff'.encode('latin1')
'\x00\x01\xff'
>>>
Офлайн
Спасибо!!!
latin1 - это то что нужно !!!
с utf8 тоже можно справится но там у меня получилось замудреней :
>>> u'\x00\x01\xff'.encode('utf8').replace('\xc2','').replace('\xc3','')
'\x00\x01\xbf' # и тут видно что один байт преобразовался
>>> u'\x00\x01\xff'.encode('latin1')
'\x00\x01\xff'
>>> unichr(int('0b10111000',2))
u'\xb8'
>>> bin(ord(u'\xb8'))
'0b10111000'
Отредактировано (Март 3, 2012 13:12:02)
Офлайн