---
name: "unicode::iconvert::convert"
section: "3"
platform: "linux"
package: "libcourier-unicode-dev"
version: "2.3.2-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/unicode::iconvert::convert"
---

# unicode::iconvert::convert(3)

unicode character set conversion

## 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)](/iconv/3.md), and can use any character set that's supported by [**iconv**(3)](/iconv/3.md). 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.

## SEE ALSO

[**courier-unicode**(7)](/courier-unicode/7.md), **unicode::convert::convert\_tocase**(3), [**unicode\_convert**(3)](/unicode_convert/3.md), [**iconv**(3)](/iconv/3.md).

## AUTHOR

**Sam Varshavchik**

Author
