Python/C API Unicode对象

来源:互联网 发布:yum安装ipk 编辑:程序博客网 时间:2024/06/06 00:45
  • Py_UNICODE
    wchar_t的typedef,是16位还是32位依赖于平台。
  • PyASCIIObject
  • PyCompactUnicodeObject
  • PyUnicodeObject
    PyOjbect的子类型。
  • PyTypeObject PyUnicode_Type

  • int PyUnicode_Check(PyObject *o)
    若对象o是Unicode类型或其子类型,返回true。

  • int PyUnicode_CheckExact(PyObject *o)
    当且仅当o为Unicode对象是返回true。

  • Py_ssize_t PyUnicode_GET_LENGTH(PyObject *o)
    返回unicode字符串的长度(in code points)。

  • void * PyUnicode_DATA(PyObject *o)
    返回unicode buffer的指针。

  • PyObject * PyUnicode_FromStringAndSize( const char *u, Py_ssize_t size)
    从utf8编码长度为size的字符串u拷贝出数据,构造unicode对象,并返回,失败返回NULL。

  • PyObject * PyUnicode_FromString(const char *u)
    u是NULL结尾的utf8编码字符串。
  • PyObject * PyUnicode_FromFormat(const char *format, …)
  • PyObject * PyUnicode_FromFormatV(const char *format, va_list vargs)
    C语言printf()样式的构造方法。
  • Py_ssize_t PyUnicode_GetLength(PyObject *unicode)
    获得unicode对象的长度,in code points。

  • PyObject * PyUnicode_FromUnicode(const Py_UNICODE *u, Py_ssize_t size)

  • Py_UNICODE* PyUnicode_AsUnicode(PyObject *unicode)
  • Py_UNICODE* PyUnicode_AsUnicodeAndSize(PyObject *unicode, Py_ssize_t *size)
  • Py_ssize_t PyUnicode_GetSize(PyObject *unicode) // in code units

  • PyObject* PyUnicode_DecodeUTF8(const char *s, Py_ssize_t size, const char *errors)
    s为utf8编码的字符串,从s中拷贝出size个字节构造unicode对象并返回,失败返回NULL。

  • PyObject * PyUnicode_AsUTF8String(PyObject *unicode)
    使用utf8对unicode对象进行编码,返回Python的bytes对象,失败返回NULL。
  • char * PyUnicode_AsUTF8AndSize(PyObject *unicode, Py_ssize_t *size)
    将unicode进行utf8编码成字符串并返回,size是返回的utf8编码的字节数。返回的字符串会添加一个额外的NULL。失败返回NULL。
  • char * PyUnicode_AsUTF8(PyObject *unicode)
    PyUnicode_AsUTF8AndSize(),只是不返回大小。
  • PyObject* PyUnicode_EncodeUTF8(const Py_UNICODE *s, Py_ssize_t size, const char *errors)
    从s中取出size大小的数据,使用utf8编码,返回bytes对象,失败返回NULL。
0 0
原创粉丝点击