Spec-Zone.ru › Qt 6.1

Класс QStringDecoder

Класс QStringDecoder предоставляет декодер на основе состояния для текста. Подробнее...

Заголовок: #include <QStringDecoder>
CMake: find_package(Qt6 COMPONENTS Core REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
Наследует: QStringConverter
  • Список всех членов, включая наследуемые

Примечание: Все функции в этом классе являются многопоточными.

Открытые функции

QStringDecoder(const char *name, QStringConverter::Flags flags = Flag::Default)
QStringDecoder()
QStringDecoder(QStringConverter::Encoding encoding, QStringConverter::Flags flags = Flag::Default)
QChar * appendToBuffer(QChar *out, QByteArrayView in)
QString decode(const QByteArray &ba)
QString decode(QByteArrayView ba)
qsizetype requiredSpace(qsizetype inputLength) const
QString operator()(const QByteArray &ba)
QString operator()(QByteArrayView ba)

Подробное описание

Декодер текста преобразует текст в кодированном формате, использующем определённую кодировку, во внутреннее представление Qt.

Преобразование закодированных данных в QString можно выполнить с помощью следующего кода:

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

Декодер запоминает любое состояние, необходимое между вызовами, поэтому преобразование данных, полученных частями, например, при приёме их через сеть, также просто, вызывая декодер всякий раз, когда новые данные становятся доступны:

auto toUtf16 = QStringDecoder(QStringDecoder::Utf8);

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

Объект QStringDecoder сохраняет состояние между частями и, следовательно, работает правильно, даже если части разбиты посередине многобайтового символа.

Объекты QStringDecoder не могут быть скопированы из-за их внутреннего состояния, но могут быть перемещены.

См. также QStringConverter и QStringEncoder.

Документация по функциям-членам

QString QStringDecoder::decode(QByteArrayView ba)

QString QStringDecoder::decode(const QByteArray &ba)

QString QStringDecoder::operator()(QByteArrayView ba)

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

Преобразует ba и возвращает данные как QString.

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

Создаёт объект декодера, используя name и flags. Если name не является именем известной кодировки, создаётся недействительный конвертер.

См. также isValid().

QStringDecoder::QStringDecoder()

Создаёт декодер по умолчанию. Декодер по умолчанию недействителен и не может использоваться для преобразования текста.

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

Создаёт объект декодера, используя encoding и flags.

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

Декодирует последовательность байтов, просматриваемую in, и записывает результат декодирования в буфер, начиная с out. Возвращает указатель на конец записанных данных.

out должен быть достаточно большим, чтобы содержать все декодированные данные. Используйте requiredSpace, чтобы определить максимальные требования к размеру для декодирования буфера закодированных данных объёмом in.size() байтов.

См. также requiredSpace.

qsizetype QStringDecoder::requiredSpace(qsizetype inputLength) const

Возвращает максимальное количество единиц кода UTF-16, необходимых для обработки inputLength закодированных данных.

См. также appendToBuffer.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qstringdecoder.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API