Georg
Дек. 17, 2010 15:24:02
Нужно отправить двухбайтовое число в бинарном формате, кодировка cp1251, т.к. после числа нужно еще добавить текст в этой кодировке.
Перевожу число в строку как str=chr(n%256)+chr(n/256), когда один из байтов равен 0x98 возникает ошибка,
UnicodeDecodeError: ‘charmap’ codec can't decode byte 0x98 in position *: character maps to <undefined>
т.к. этот символ не определен в cp1251, как это можно обойти?
UPD. ошибка происходит после, когда я пытаюсь добавить к str строку
doza_and
Дек. 17, 2010 15:35:33
обычно для упаковки используется модуль struct
o7412369815963
Дек. 17, 2010 18:35:42
и в догонку
>>> print ord(s[0]) + ord(s[1])*0x100, s[2:].decode('cp1251')
9624 hello вася
свой протокол изобретаешь что ли?
Georg
Дек. 20, 2010 16:52:42
Проверил пример, вроде все работает, давай из программы куски вырезать чтоб собрать минимальный текст чтоб воспроизводилось, 2 раза воспроизвелось и больше не хочет, мистика какая-то, хотя в программе стабильно воспроизводится, отредактировал cp1251.py, добавил символ 0x98, тогда не глючит, решение конечно не ахти.
Да, использую свой протокол, когда протокол не сложный и нужно экономить трафик по моему нормальное решение