Spec-Zone.ru › Qt 6.1

Класс 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.1/qstringencoder.html

Spec-Zone.ru

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