class QStringEncoder#

QStringEncoder 类提供了一个基于状态的对文本的编码器。 更多信息

Inheritance diagram of PySide6.QtCore.QStringEncoder

概述#

方法#

注意

此文档可能包含从C++自动转换为Python的片段,我们始终欢迎对片段翻译的贡献。如果您发现翻译问题,您也可以通过在https:/bugreports.qt.io/projects/PYSIDE上创建工单通知我们。

详细描述#

警告

本节包含从C++自动转换为Python的片段,可能包含错误。

文本编码器将文本从Qt的内部表示转换为特定编码的编码文本格式。

可以使用以下代码将字符串从Unicode转换为本地编码

string = "..."
fromUtf16 = QStringEncoder(QStringEncoder.Utf8)
encodedString = fromUtf16(string)

编码器记住在调用之间的任何所需状态,因此转换数据(例如,在通过网络接收时)就像在新的数据可用时调用编码器一样简单。

fromUtf16 = QStringEncoder(QStringEncoder.Utf8)
encoded = QByteArray()
while new_data_available():
    chunk = get_new_data()
    encoded += fromUtf16(chunk)

The QStringEncoder 对象在块之间保持状态,因此即使一个 UTF-16 代理字符在块之间拆分,它也能正确工作。

由于内部状态,QStringEncoder 对象不能被复制,但可以移动。

__init__()#

默认构造一个编码器。默认编码器是无效的,不能用于转换文本。

__init__(encoding[, flags=QStringConverterBase.Flag.Default])
参数:
__init__(name[, flags=QStringConverterBase.Flag.Default])
参数:
  • name – str

  • flagsFlag 的组合

requiredSpace(inputLength)#
参数:

inputLength – int

返回类型:

int

返回处理 inputLength 解码数据的所需最大字符数。

另请参阅

appendToBuffer()