nmhУМВР. У тебя второй или третий питон?
Получаем тогда такое:
UnicodeEncodeError: ‘ascii’ codec can't encode characters in position 33-38: ordinal not in range(128)
nmhУМВР. У тебя второй или третий питон?
Получаем тогда такое:
UnicodeEncodeError: ‘ascii’ codec can't encode characters in position 33-38: ordinal not in range(128)
Давайте с начала.
Прототип функции:
typedef bool (*tcallback)(BYTE* pData);
Callback:
def testcallback(s):
u = s.decode('utf8')
print u # или print u.encode('cp1251') если это текстовая виндовая консоль
callback= CFUNCTYPE(c_bool, c_char_p)(testcallback)
Андрей Светлов
Давайте с начала.
Прототип функции:
typedef bool (*tcallback)(BYTE* pData);
Callback:
def testcallback(s):
u = s.decode('utf8')
print u # или print u.encode('cp1251') если это текстовая виндовая консоль
callback= CFUNCTYPE(c_bool, c_char_p)(testcallback)
Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win 32 Type "help", "copyright", "credits" or "license" for more information. >>> s = u'\u733c\u7265\u6576\u5f72\u7473\u7461\u7375\u6320\u6e6f\u656e\u7463\u64 65\u223d\u7265\u6f72\u2272\ud03e\ud0a1\ud1b5\ud080\ud0b2\ud1b5\u2080\ubdd0\ub5d0 \ud020\ud0b4\ud1be\ud181\ud182\ud083\ud0bf\ud0b5\u3cbd\u732f\u7265\u6576\u5f72\u 7473\u7461\u7375>\u4c43\u4549\u6726\u6b98\uad7f\x02\u28c0\u01b6\u2f28\u01b6\x 16' >>> type(s) <type 'unicode'> >>> s2 = s.encode('ascii', 'ignore') >>> print s2 >☻▬ >>>
GaiveRэх, не очень то это похоже на решение проблемы
Насчёт ctypes и колбека не подскажу, т.к. сам с ним не работал.>>> print s2 >☻▬ >>>
odnochlenне знаю, думаю, видимо дело в том, в каком виде данные приходят от dllки, ну не знаю короче
Каким концом настройки винды относятся к преобразованиям с явным указанием кодировки??