PySide6.QtCore.QStringDecoder¶
- class QStringDecoder¶
QStringDecoder
类提供了一个基于状态的文本解码器。更多…概要¶
方法¶
def
__init__()
def
appendToBuffer()
def
requiredSpace()
静态函数¶
def
decoderForHtml()
注意
本文档可能包含从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
f –
Flag
的组合
- __init__(encoding[, flags=QStringConverterBase.Flag.Default])
- appendToBuffer(out, ba)¶
- Parameters:
out –
QChar
ba –
QByteArrayView
- Return type:
QChar
解码由
in
查看的字节序列,并将解码结果写入从out
开始的缓冲区。返回指向写入数据末尾的指针。out
需要足够大以容纳所有解码后的数据。使用requiredSpace
来确定解码一个大小为in.size()
字节的编码数据缓冲区所需的最大空间。另请参阅
- static decoderForHtml(data)¶
- Parameters:
数据 –
QByteArrayView
- Return type:
尝试通过查看HTML中的前导字节顺序标记或HTML meta标签中的字符集说明符来确定
data
的编码,并返回一个与编码匹配的QStringDecoder
。如果返回的解码器无效,则表示QStringConverter
不支持指定的编码。如果未检测到编码,则该方法返回一个用于Utf8的解码器。另请参阅
- requiredSpace(inputLength)¶
- Parameters:
inputLength – int
- Return type:
整数
返回处理
inputLength
编码数据所需的最大UTF-16代码单元数量。另请参阅