Python/C API Unicode对象

本文介绍了Python中Unicode字符串的处理方法,包括类型检查、长度获取、数据构造与转换等API介绍。帮助开发者更好地理解和使用Python的Unicode支持。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 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。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值