2013-04-09 5 views
0

Я попытался использовать тип данных курсора C char в python 3.3. Я использовал следующий код:Использование C datatypes с ctypes в python

from ctypes import * 

    firstname = c_char_p("I am a noob programmer".encode("utf-8")) 
    print(firstname.value) 

Мой желаемый результат был

I am a noob programmer 

но то, что я получил

b'I am a noob programmer' 

Я следую учебник сделал для Python 2.6. Я использовал «ascii» в качестве параметра для функции кодирования. А также попробовал «bytes()» вместо кодирования. Но никакой разницы в любой момент. Почему я не получаю желаемый результат? и как я могу получить результат по желанию.

Пожалуйста, кто-нибудь помочь мне понять ..

+3

Выход правильный для Python 3. Используйте Python 2.6, если вы хотите увидеть тот же результат, что и учебник. –

ответ

1

В Python 3 вы должны декодировать его обратно str, если вы хотите, чтобы вести себя как str.

print(firstname.value.decode("utf-8")) 
Смежные вопросы