class QStringDecoder#

QStringDecoder类提供了一个基于状态的文本文档解析器。更多内容...

Inheritance diagram of 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 对象不能被复制,但可以被移动。

参阅

QStringConverter QStringEncoder

__init__(#

默认构造函数创建一个解码器。默认解码器无效,无法用于转换文本。

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

  • fFlag 组合

appendToBuffer(out, ba)
参数:
  • outQChar

  • baQByteArrayView

返回类型:

QChar

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

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

参阅

requiredSpace

static decoderForHtml(数据)#
参数:

数据 - QByteArrayView

返回类型:

QStringDecoder

尝试通过检查 数据 中的前导字节顺序标记或 HTML 元标签中的字符集指定项来确定 HTML 的编码,并返回一个匹配该编码的 QStringDecoder。如果返回的解码器无效,指定的编码不支持 QStringConverter。如果没有检测到任何编码,则该方法返回适用于 Utf8 的解码器。

参阅

isValid()

requiredSpace(输入长度)#
参数:

输入长度 - int

返回类型:

int

返回最多需要的 UTF-16 代码单元数量,以便可以处理 输入长度 编码的数据。