PySide6.QtCore.QStringEncoder

class QStringEncoder

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

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)

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

QStringEncoder 对象由于其内部状态无法被复制,但可以被移动。

__init__()

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

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

  • flagsFlag 的组合

__init__(encoding[, flags=QStringConverterBase.Flag.Default])
Parameters:
requiredSpace(inputLength)
Parameters:

inputLength – int

Return type:

整数

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

另请参阅

appendToBuffer()