PySide6.QtCore.QStringDecoder

class QStringDecoder

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

PySide6.QtCore.QStringDecoder 的继承图

概要

方法

静态函数

注意

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

详细描述

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

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

将编码数据转换为QString可以使用以下代码实现:

encodedString = "..."
toUtf16 = QStringDecoder(QStringDecoder.Utf8)
string = toUtf16(encodedString)

解码器会记住调用之间所需的任何状态,因此,例如,当通过网络接收数据时,只需在每次有新数据可用时调用解码器,就可以轻松地转换分块接收的数据:

toUtf16 = QStringDecoder(QStringDecoder.Utf8)
string = QString()
while new_data_available():
    chunk = get_new_data()
    string += toUtf16(chunk)

QStringDecoder 对象在块之间保持状态,因此即使块在多字节字符序列的中间被分割,它也能正常工作。

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

__init__()

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

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

  • fFlag 的组合

__init__(encoding[, flags=QStringConverterBase.Flag.Default])
Parameters:
appendToBuffer(out, ba)
Parameters:
  • outQChar

  • baQByteArrayView

Return type:

QChar

解码由in查看的字节序列,并将解码结果写入从out开始的缓冲区。返回指向写入数据末尾的指针。

out 需要足够大以容纳所有解码后的数据。使用 requiredSpace 来确定解码一个大小为 in.size() 字节的编码数据缓冲区所需的最大空间。

另请参阅

requiredSpace

static decoderForHtml(data)
Parameters:

数据QByteArrayView

Return type:

QStringDecoder

尝试通过查看HTML中的前导字节顺序标记或HTML meta标签中的字符集说明符来确定data的编码,并返回一个与编码匹配的QStringDecoder。如果返回的解码器无效,则表示QStringConverter不支持指定的编码。如果未检测到编码,则该方法返回一个用于Utf8的解码器。

另请参阅

isValid()

requiredSpace(inputLength)
Parameters:

inputLength – int

Return type:

整数

返回处理inputLength编码数据所需的最大UTF-16代码单元数量。

另请参阅

appendToBuffer