QStringEncoder — PyQt Documentation v6.9.0 (original) (raw)

PyQt6.QtCore.QStringEncoder

Inherits from QStringConverter.

Description

The QStringEncoder class provides a state-based encoder for text.

A text encoder converts text from Qt’s internal representation into an encoded text format using a specific encoding.

Converting a string from Unicode to the local encoding can be achieved using the following code:

QString string = "...";

auto fromUtf16 = QStringEncoder(QStringEncoder::Utf8);

QByteArray encodedString = fromUtf16(encodedString);

The encoder remembers any state that is required between calls, so converting data received in chunks, for example, when receiving it over a network, is just as easy, by calling the encoder whenever new data is available:

auto fromUtf16 = QStringEncoder(QStringEncoder::Utf8);

QByteArray encoded;

while (new_data_available()) {

QString chunk = get_new_data();

encoded += fromUtf16(chunk);

}

The QStringEncoder object maintains state between chunks and therefore works correctly even if a UTF-16 surrogate character is split between chunks.

QStringEncoder objects can’t be copied because of their internal state, but can be moved.

Methods

__init__()

Default constructs an encoder. The default encoder is not valid, and can’t be used for converting text.


__init__(Encoding, flags: Flag = Default)

TODO


__init__(Union[Union[QByteArray, bytes, bytearray, memoryview], Optional[str]], flags: Flag = Default)

TODO


__call__(str) → QByteArray

TODO


encode(str) → QByteArray

TODO