- 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
对象不能被复制,但可以被移动。参阅
QStringConverter
QStringEncoder
- __init__(#
默认构造函数创建一个解码器。默认解码器无效,无法用于转换文本。
- __init__(encoding[, flags=QStringConverterBase.Flag.Default])
- __init__(name[, f=QStringConverterBase.Flag.Default])
- 参数:
name – str
f –
Flag
组合
- appendToBuffer(out, ba)
- 参数:
out –
QChar
ba –
QByteArrayView
- 返回类型:
QChar
解码由
in
观看的字节序列,并将解码结果写入从out
开始的缓冲区。返回写入数据末尾的指针。out
需要足够大,以便能够容纳所有解码的数据。使用requiredSpace
来确定解码in.size()
字节编码数据缓冲区的最大大小。- static decoderForHtml(数据)#
- 参数:
数据 -
QByteArrayView
- 返回类型:
尝试通过检查
数据
中的前导字节顺序标记或 HTML 元标签中的字符集指定项来确定 HTML 的编码,并返回一个匹配该编码的QStringDecoder
。如果返回的解码器无效,指定的编码不支持QStringConverter
。如果没有检测到任何编码,则该方法返回适用于 Utf8 的解码器。参阅
- requiredSpace(输入长度)#
- 参数:
输入长度 - int
- 返回类型:
int
返回最多需要的 UTF-16 代码单元数量,以便可以处理
输入长度
编码的数据。