TempEncodingHelper Class Reference

use this class to manage strings where the character encoding must be specified and may be different than the actual encoding in the string More...

`#include <QoreString.h>`

## Public Member Functions

DLLLOCAL | TempEncodingHelper (const QoreString &s, const QoreEncoding *qe, ExceptionSink *xsink)
| converts the given string to the required encoding if necessary More...
DLLLOCAL | TempEncodingHelper (const QoreString *s, const QoreEncoding *qe, ExceptionSink *xsink)
| converts the given string to the required encoding if necessary More...
DLLLOCAL | TempEncodingHelper ()
| creates an empty TempEncodingHelperObject that may be initialized with TempEncodingHelper::set() later
DLLLOCAL | ~TempEncodingHelper ()
| deletes any temporary string being managed by the object
DLLLOCAL char * | giveBuffer ()
| returns a char pointer of the string, the caller owns the pointer returned (it must be manually freed) More...
DLLLOCAL bool | is_temp () const
| returns true if a temporary string is being managed
DLLLOCAL void | makeTemp ()
| ensures that the object is holding a temporary value
DLLLOCAL | operator bool () const
| returns false if the object is empty (for example, if a Qore-language exception was thrown in the constructor), true if not More...
DLLLOCAL const QoreString * | operator* ()
| returns the string being managed
DLLLOCAL const QoreString * | operator-> ()
| returns the string being managed
DLLEXPORT void | removeBom ()
| remove any leading byte order marker (BOM) from UTF-16* strings More...
DLLLOCAL int | set (const QoreString *s, const QoreEncoding *qe, ExceptionSink *xsink)
| discards any current state and sets and converts (if necessary) a new string to the desired encoding More...

## Detailed Description

use this class to manage strings where the character encoding must be specified and may be different than the actual encoding in the string

this class calls QoreString::convertEncoding() if necessary and manages any temporary string created by this call. the destructor will delete any temporary string if necessary. Note that the constructor may add Qore-language exception information to the "xsink" parameter in case character set encoding conversion was necessary and failed

See also
  QoreString

// ensure a string is in UTF-8 encoding
TempEncodingHelper utf8_str(str, QCS_UTF8, xsink);
if (!str) // !str is only true if an exception has been thrown in the conversion
return 0;
printf("%s\n", utf8_str->getBuffer());

## Constructor & Destructor Documentation

## TempEncodingHelper() [1/2]

DLLLOCAL TempEncodingHelper::TempEncodingHelper | ( | const QoreString & | s,
|  | const QoreEncoding * | qe,
|  | ExceptionSink * | xsink
| ) |  |

inline

converts the given string to the required encoding if necessary

Parameters

  s | a reference to the QoreString input value
  qe | the QoreEncoding required
  xsink | if an error occurs, the Qore-language exception information will be added here

## TempEncodingHelper() [2/2]

DLLLOCAL TempEncodingHelper::TempEncodingHelper | ( | const QoreString * | s,
|  | const QoreEncoding * | qe,
|  | ExceptionSink * | xsink
| ) |  |

inline

converts the given string to the required encoding if necessary

Parameters

  s | a pointer to the QoreString input value
  qe | the QoreEncoding required
  xsink | if an error occurs, the Qore-language exception information will be added here

## Member Function Documentation

## giveBuffer()

DLLLOCAL char* TempEncodingHelper::giveBuffer | ( |  | ) |

inline

returns a char pointer of the string, the caller owns the pointer returned (it must be manually freed)

Returns
  a char pointer of the string, the caller owns the pointer returned

## operator bool()

DLLLOCAL TempEncodingHelper::operator bool | ( |  | ) | const

inline

returns false if the object is empty (for example, if a Qore-language exception was thrown in the constructor), true if not

Returns
  false if the object is empty, true if not

## removeBom()

DLLEXPORT void TempEncodingHelper::removeBom | ( |  | ) |

remove any leading byte order marker (BOM) from UTF-16* strings

Since
  Qore 0.8.13

## set()

DLLLOCAL int TempEncodingHelper::set | ( | const QoreString * | s,
|  | const QoreEncoding * | qe,
|  | ExceptionSink * | xsink
| ) |  |

inline

discards any current state and sets and converts (if necessary) a new string to the desired encoding

note that the return value is the opposite of most qore functions because it was implemented incorrectly; the documentation has been changed to reflect the incorrect implementation; the implementation was not fixed in order to preserve source compatibility

Parameters

  s | a pointer to the QoreString input value
  qe | the QoreEncoding required
  xsink | if an error occurs, the Qore-language exception information will be added here

Returns
  1=OK, 0=an error occurred and a Qore-language exception was raised

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

- include/qore/QoreString.h