Spec-Zone.ru › Qt 6.0

Класс 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.0/qstringdecoder.html

Spec-Zone.ru

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