Странная проблема, я думаю:ctypes pure python vs ctypes django
У меня есть библиотека C, которая меняет символ *. Когда я использую ctypes в чистом python, я получаю правильное решение. Однако, когда я пытаюсь использовать тот же код в представлении django, я получаю неправильный ответ.
Pure Python:
import sys
from ctypes import *
path = "library.so"
lib = cdll.LoadLibrary(path)
reverse = lib.reverse
reverse.restype = c_char_p
, когда я использую "обратный ('Pepe')" Я получаю 'epep'
С Джанго, с тем же кодом, я получаю только 'р'.
Любая идея?
Не могли бы вы дать нам дополнительную информацию о том, что означает «с джанго»? Может быть, какой контекст в django вы используете «обратный»? –
С django подразумевается использование этого кода в представлении django. –
Django использует unicode. В основном он помещает NULL-байт после каждого символа в строке. Это может быть так, что library.so не видит строку правильно. –