unicode::iconvert::tou(3) template for converting text sequence to unicode


#include <courier-unicode.h>

output_iter_t convert(input_iter_t beg_iter, input_iter_t end_iter, const std::string &charset, bool &errflag, output_iter_t output_iter);
bool convert(input_iter_t beg_iter, input_iter_t end_iter, const std::string &charset, std::vector<unicode_char> &out_buf);
std::pair<std::vector<unicode_char>, bool> convert(const std::string &text, const std::string &charset);


These template functions convert text in a given character set to unicode characters. beg_iter and end_iter define an input sequence of chars in the charset character set. They get converted to unicode characters. output_iter is an output iterator that convert() iterates over unicode_chars. convert() returns the value of the output iterator after iterating over the converted character sequence. errflag, passed by reference, gets set to true if some character could not be converted to unicode, from the specified character set, and false if the conversion completed without errors.

An overloaded convert() puts the unicode character sequence into a vector of unicode_chars, instead of an output sequence, and returned the error flag. Finally, a single std::string specifies the character string, instead of a beginning and an ending iterator, and returns a std::pair with the converted unicode text in a vector, and the error flag.


Sam Varshavchik