Найти - Пользователи
Полная версия: socket send не шлет unicode
Начало » Network » socket send не шлет unicode
1
sonniy
у меня есть вот такая строка 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)
мне нужно переслать по сути байты, это у нас два байта … вот они 0b10111000 и 0b00001100

как переслать данные так что бы на другом конце получили именно эти байты (0b10111000 и 0b00001100) ?
agalen
sonniy
это у нас два байта
Это не 2 байта, а 2 символа. Получить однобайтовую строку можно с помощью метода encode, но нужно правильно задать кодировку:
>>> u'\xb8\x0c'.encode( "utf-8" )
'\xc2\xb8\x0c'
Другой вариант - подходит только, если исходная строка содержит символы из диапазона 0-255 (русские буквы не пройдут):
>>> """.join( [ chr(ord(x)) for x in u'\xb8\x0c' ] )
'\xb8\x0c'
py.user.next
http://python.su/forum/viewtopic.php?id=13958
sonniy
решение

ЗЫ
простите за дубль топик, если можно перенесите все сюда
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB