IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

QStringDecoder Class

The QStringDecoder class provides a state-based decoder for text.

All functions in this class are reentrant.

Article lu   fois.

L'auteur

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

QStringDecoder Class

  • Header: QStringDecoder

  • CMake:

    find_package(Qt6 REQUIRED COMPONENTS Core)

    target_link_libraries(mytarget PRIVATE Qt6::Core)

  • qmake: QT += core

  • Inherits: QStringConverter

  • Group: QStringDecoder is part of i18n

Detailed Description

A text decoder converts text an encoded text format that uses a specific encoding into Qt's internal representation.

Converting encoded data into a QString can be achieved using the following code:

 
Sélectionnez
QByteArray encodedString = "...";
auto toUtf16 = QStringDecoder(QStringDecoder::Utf8);
QString string = toUtf16(encodedString);

The decoder 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 decoder whenever new data is available:

 
Sélectionnez
auto toUtf16 = QStringDecoder(QStringDecoder::Utf8);

QString string;
while (new_data_available()) {
    QByteArray chunk = get_new_data();
    string += toUtf16(chunk);
}

The QStringDecoder object maintains state between chunks and therefore works correctly even if chunks are split in the middle of a multi-byte character sequence.

QStringDecoder objects can't be copied because of their internal state, but can be moved.

See Also

Member Function Documentation

 

QString QStringDecoder::decode(QByteArrayView ba)

QString QStringDecoder::decode(const QByteArray &ba)

QString QStringDecoder::operator()(QByteArrayView ba)

QString QStringDecoder::operator()(const QByteArray &ba)

Converts ba and returns the data as a QString.

QStringDecoder::QStringDecoder(QStringConverter::Encoding encoding, QStringConverter::Flags flags = Flag::Default)

Creates an decoder object using encoding and flags.

QStringDecoder::QStringDecoder()

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

QStringDecoder::QStringDecoder(const char *name, QStringConverter::Flags flags = Flag::Default)

Creates an decoder object using name and flags. If name is not the name of a known encoding an invalid converter will get created.

See Also

See also isValid()

QChar *QStringDecoder::appendToBuffer(QChar *out, QByteArrayView in)

Decodes the sequence of bytes viewed by in and writes the decoded result into the buffer starting at out. Returns a pointer to the end of data written.

out needs to be large enough to be able to hold all the decoded data. Use requiredSpace to determine the maximum size requirements to decode an encoded data buffer of in.size() bytes.

See Also

See also requiredSpace

qsizetype QStringDecoder::requiredSpace(qsizetype inputLength) const

Returns the maximum amount of UTF-16 code units required to be able to process inputLength encoded data.

See Also

See also appendToBuffer

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+