QtBase  v6.3.1
Classes | Public Member Functions | Protected Member Functions | List of all members
QStringEncoder Class Reference

The QStringEncoder class provides a state-based encoder for text. \reentrant. More...

#include <qstringconverter.h>

Inheritance diagram for QStringEncoder:
Inheritance graph
[legend]
Collaboration diagram for QStringEncoder:
Collaboration graph
[legend]

Classes

struct  DecodedData
 

Public Member Functions

QSTRINGCONVERTER_CONSTEXPR QStringEncoder ()
 
QSTRINGCONVERTER_CONSTEXPR QStringEncoder (Encoding encoding, Flags flags=Flag::Default)
 
 QStringEncoder (const char *name, Flags flags=Flag::Default)
 
Q_WEAK_OVERLOAD DecodedData< const QString & > operator() (const QString &str)
 
DecodedData< QStringViewoperator() (QStringView in)
 
Q_WEAK_OVERLOAD DecodedData< const QString & > encode (const QString &str)
 
DecodedData< QStringViewencode (QStringView in)
 
qsizetype requiredSpace (qsizetype inputLength) const
 
char * appendToBuffer (char *out, QStringView in)
 
- Public Member Functions inherited from QStringConverter
bool isValid () const
 
void resetState ()
 
bool hasError () const
 
const char * name () const
 

Protected Member Functions

QSTRINGCONVERTER_CONSTEXPR QStringEncoder (const Interface *i)
 
- Protected Member Functions inherited from QStringConverter
QSTRINGCONVERTER_CONSTEXPR QStringConverter ()
 
QSTRINGCONVERTER_CONSTEXPR QStringConverter (Encoding encoding, Flags f)
 
QSTRINGCONVERTER_CONSTEXPR QStringConverter (const Interface *i)
 
Q_CORE_EXPORT QStringConverter (const char *name, Flags f)
 

Additional Inherited Members

- Public Types inherited from QStringConverter
enum  Encoding {
  Utf8 , Utf16 , Utf16LE , Utf16BE ,
  Utf32 , Utf32LE , Utf32BE , Latin1 ,
  System , LastEncoding = System
}
 
- Public Types inherited from QStringConverterBase
enum class  Flag {
  Default = 0 , Stateless = 0x1 , ConvertInvalidToNull = 0x2 , WriteBom = 0x4 ,
  ConvertInitialBom = 0x8
}
 
- Static Public Member Functions inherited from QStringConverter
static Q_CORE_EXPORT std::optional< EncodingencodingForName (const char *name)
 
static Q_CORE_EXPORT const char * nameForEncoding (Encoding e)
 
static Q_CORE_EXPORT std::optional< EncodingencodingForData (QByteArrayView data, char16_t expectedFirstCharacter=0)
 
static Q_CORE_EXPORT std::optional< EncodingencodingForHtml (QByteArrayView data)
 
- Protected Attributes inherited from QStringConverter
const Interfaceiface
 
State state
 

Detailed Description

The QStringEncoder class provides a state-based encoder for text. \reentrant.

\inmodule QtCore

A text encoder converts text from Qt's internal representation into an encoded text format using a specific encoding.

Converting a string from Unicode to the local encoding can be achieved using the following code:

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

The QStringEncoder object maintains state between chunks and therefore works correctly even if a UTF-16 surrogate character is split between chunks.

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

See also
QStringConverter, QStringDecoder

Definition at line 193 of file qstringconverter.h.

Constructor & Destructor Documentation

◆ QStringEncoder() [1/4]

constexpr QStringEncoder::QStringEncoder ( const Interface i)
inlineprotected

Definition at line 196 of file qstringconverter.h.

◆ QStringEncoder() [2/4]

constexpr QStringEncoder::QStringEncoder ( )
inline

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

Definition at line 200 of file qstringconverter.h.

◆ QStringEncoder() [3/4]

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

Creates an encoder object using encoding and flags.

Definition at line 203 of file qstringconverter.h.

◆ QStringEncoder() [4/4]

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

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

See also
isValid()

Definition at line 206 of file qstringconverter.h.

Member Function Documentation

◆ appendToBuffer()

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

Encodes in and writes the encoded result into the buffer starting at out. Returns a pointer to the end of the data written.

Note
out must be large enough to be able to hold all the decoded data. Use requiredSpace() to determine the maximum size requirement to be able to encode in.
See also
requiredSpace()

Definition at line 237 of file qstringconverter.h.

◆ encode() [1/2]

QByteArray QStringEncoder::encode ( const QString str)
inline

Definition at line 229 of file qstringconverter.h.

◆ encode() [2/2]

QByteArray QStringEncoder::encode ( QStringView  in)
inline

Definition at line 231 of file qstringconverter.h.

◆ operator()() [1/2]

QByteArray QStringEncoder::operator() ( const QString str)
inline

Definition at line 224 of file qstringconverter.h.

◆ operator()() [2/2]

QByteArray QStringEncoder::operator() ( QStringView  in)
inline

Converts in and returns the data as a byte array.

Definition at line 226 of file qstringconverter.h.

◆ requiredSpace()

qsizetype QStringEncoder::requiredSpace ( qsizetype  inputLength) const
inline

Returns the maximum amount of characters required to be able to process inputLength decoded data.

See also
appendToBuffer()

Definition at line 235 of file qstringconverter.h.


The documentation for this class was generated from the following files: