Name

unicode::iconvert::convert, unicode::ucs_4, unicode::ucs_2, unicode::utf_8, unicode::iso_8859_1 — unicode character set conversion

Synopsis

#include <courier-unicode.h>

extern const char unicode::ucs_4[];
extern const char unicode::ucs_2[];
extern const char unicode::utf_8[];
extern const char unicode::iso_8859_1[];
std::string unicode::iconvert::convert( const std::string &text,
  const std::string &srccharset,
  const std::string &dstcharset);
 
std::string unicode::iconvert::convert( const std::string &text,
  const std::string &srccharset,
  const std::string &dstcharset,
  bool &errflag);
 
std::string unicode::iconvert::convert( const std::vector<char32_t> &text,
  const std::string &dstcharset);
 
std::string unicode::iconvert::convert( const std::vector<char32_t> &text,
  const std::string &dstcharset,
  bool &errflag);
 
bool unicode::iconvert::convert( const std::string &text,
  const std::string &charset,
  std::vector<char32_t> &text);
 

DESCRIPTION

The overloaded unicode::convert::convert() functions convert:

  • A text string between two different character sets, returning the new string.

  • A vector of unicode characters (not null-terminated) to a character string in a supported character set.

  • Initialize a vector of unicode characters, passed by reference, by converting a text string in a given character set to unicode.

These functions use iconv(3), and can use any character set that's supported by iconv(3). Use unicode::ucs_2 and unicode::ucs_4 to specify the 16 and the 32 bit unicode octet in native byte order. Use unicode::utf_8 and unicode::iso_8859_1 to specify these two standard character sets. The overloaded versions that pass a reference to a bool set the flag to true if some characters could not be converted. The overloaded version that initializes a unicode vector returns the bool flag, instead.