cython
1from cython.cimports.libc.stdlib import free2
3@cython.cfunc4def tounicode(s: cython.p_char) -> str:5return s.decode('UTF-8', 'strict')6
7@cython.cfunc8def tounicode_with_length(9s: cython.p_char, length: cython.size_t) -> str:10return s[:length].decode('UTF-8', 'strict')11
12@cython.cfunc13def tounicode_with_length_and_free(14s: cython.p_char, length: cython.size_t) -> str:15try:16return s[:length].decode('UTF-8', 'strict')17finally:18free(s)19