Spec-Zone.ru › Qt 6.0

Класс QStringEncoder

Класс QStringEncoder предоставляет основанный на состоянии кодировщик текста. Подробнее...

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

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

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

QStringEncoder(const char *name, QStringConverter::Flags flags = Flag::Default)
QStringEncoder(QStringConverter::Encoding encoding, QStringConverter::Flags flags = Flag::Default)
QStringEncoder()
char * appendToBuffer(char *out, QStringView in)
QByteArray encode(const QString &in)
QByteArray encode(QStringView in)
qsizetype requiredSpace(qsizetype inputLength) const
QByteArray operator()(const QString &in)
QByteArray operator()(QStringView in)

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

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

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

QString string = "...";
auto fromUtf16 = QStringEncoder(QStringEncoder::Utf8);
QByteArray encodedString = fromUtf16(encodedString);

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

auto fromUtf16 = QStringEncoder(QStringEncoder::Utf8);

QByteArray encoded;
while (new_data_available()) {
    QString chunk = get_new_data();
    encoded += fromUtf16(chunk);
}

Объект QStringEncoder сохраняет состояние между частями и, следовательно, работает корректно, даже если суррогатное UTF-16 символы разделены между частями.

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

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

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

QByteArray QStringEncoder::encode(QStringView in)

QByteArray QStringEncoder::encode(const QString &in)

QByteArray QStringEncoder::operator()(QStringView in)

QByteArray QStringEncoder::operator()(const QString &in)

Преобразует in и возвращает данные в виде массива байтов.

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

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

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

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

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

QStringEncoder::QStringEncoder()

Инициализирует кодировщик по умолчанию. Кодировщик по умолчанию не является валидным и не может быть использован для преобразования текста.

char *QStringEncoder::appendToBuffer(char *out, QStringView in)

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

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

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

qsizetype QStringEncoder::requiredSpace(qsizetype inputLength) const

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

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

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

Spec-Zone.ru

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