QStringEncoder Class
The QStringEncoder class provides a state-based encoder for text. More...
Header: | #include <QStringEncoder> |
CMake: | find_package(Qt6 COMPONENT Core) target_link_libraries(mytarget PUBLIC Qt::Core) |
qmake: | QT += core |
Inherits: | QStringConverter |
Note: All functions in this class are reentrant.
Public Functions
QStringEncoder(const char *name, QStringConverter::Flags flags = Flag::Default) | |
QStringEncoder(QStringConverter::Encoding encoding, QStringConverter::Flags flags = Flag::Default) | |
QStringEncoder() | |
QByteArray | encode(const QString &in) |
QByteArray | encode(QStringView in) |
qsizetype | requiredSpace(qsizetype inputLength) const |
QByteArray | operator()(const QString &in) |
QByteArray | operator()(QStringView in) |
Detailed Description
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.
See also QStringConverter and QStringDecoder.
Member Function Documentation
QByteArray QStringEncoder::encode(QStringView in)
QByteArray QStringEncoder::operator()(QStringView in)
This is an overloaded function.
Converts in and returns the data as a byte array.
QByteArray QStringEncoder::encode(const QString &in)
QByteArray QStringEncoder::operator()(const QString &in)
Converts in and returns the data as a byte array.
QStringEncoder::QStringEncoder(const char *name, QStringConverter::Flags flags = Flag::Default)
Creates an encoder object using name and flags. If name is not the name of a known encoding an invalid converter will get created.
See also isValid().
QStringEncoder::QStringEncoder(QStringConverter::Encoding encoding, QStringConverter::Flags flags = Flag::Default)
Creates an encoder object using encoding and flags.
QStringEncoder::QStringEncoder()
Default constructs an encoder. The default encoder is not valid, and can't be used for converting text.
qsizetype QStringEncoder::requiredSpace(qsizetype inputLength) const
Returns the maximum amount of characters required to be able to process inputLength decoded data.
See also appendToBuffer.