# Poco

# class UnicodeConverter

Library: Foundation
Package: Text
Header: Poco/UnicodeConverter.h

## Description

A convenience class that converts strings from UTF-8 encoded std::strings to UTF-16 or UTF-32 encoded std::wstrings and vice-versa.

This class is mainly used for working with the Unicode Windows APIs and probably won't be of much use anywhere else ???

## Member Summary

Member Functions: UTFStrlen, convert, to, toUTF16, toUTF32, toUTF8

## Member Functions

### UTFStrlen

template < typename T > static std::size_t UTFStrlen(
const T * ptr
);

Returns the length (in characters) of a zero-terminated UTF string.

### convert

static void convert(
const std::string & utf8String,
UTF32String & utf32String
);

Converts the given UTF-8 encoded string into an UTF-32 encoded wide string.

### convert

static void convert(
const char * utf8String,
std::size_t length,
UTF32String & utf32String
);

Converts the given UTF-8 encoded character sequence into an UTF-32 encoded wide string.

### convert

static void convert(
const char * utf8String,
UTF32String & utf32String
);

Converts the given zero-terminated UTF-8 encoded character sequence into an UTF-32 encoded wide string.

### convert

static void convert(
const std::string & utf8String,
UTF16String & utf16String
);

Converts the given UTF-8 encoded string into an UTF-16 encoded wide string.

### convert

static void convert(
const char * utf8String,
std::size_t length,
UTF16String & utf16String
);

Converts the given UTF-8 encoded character sequence into an UTF-16 encoded wide string.

### convert

static void convert(
const char * utf8String,
UTF16String & utf16String
);

Converts the given zero-terminated UTF-8 encoded character sequence into an UTF-16 encoded wide string.

### convert

static void convert(
const UTF16String & utf16String,
std::string & utf8String
);

Converts the given UTF-16 encoded wide string into an UTF-8 encoded string.

### convert

static void convert(
const UTF32String & utf32String,
std::string & utf8String
);

Converts the given UTF-32 encoded wide string into an UTF-8 encoded string.

### convert

static void convert(
const UTF16Char * utf16String,
std::size_t length,
std::string & utf8String
);

Converts the given zero-terminated UTF-16 encoded wide character sequence into an UTF-8 encoded string.

### convert

static void convert(
const UTF32Char * utf16String,
std::size_t length,
std::string & utf8String
);

Converts the given zero-terminated UTF-32 encoded wide character sequence into an UTF-8 encoded string.

### convert

static void convert(
const UTF16Char * utf16String,
std::string & utf8String
);

Converts the given UTF-16 encoded zero terminated character sequence into an UTF-8 encoded string.

### convert

static void convert(
const UTF32Char * utf32String,
std::string & utf8String
);

Converts the given UTF-32 encoded zero terminated character sequence into an UTF-8 encoded string.

### to

template < typename T > static T to(
const char * pChar
);

### to

template < typename T > static T to(
const std::string & str
);

### toUTF16

template < typename F, typename T > static void toUTF16(
const F & f,
T & t
);

### toUTF16

template < typename F, typename T > static void toUTF16(
const F & f,
std::size_t l,
T & t
);

### toUTF32

template < typename F, typename T > static void toUTF32(
const F & f,
T & t
);

### toUTF32

template < typename F, typename T > static void toUTF32(
const F & f,
std::size_t l,
T & t
);

### toUTF8

template < typename F, typename T > static void toUTF8(
const F & f,
T & t
);

### toUTF8

template < typename F, typename T > static void toUTF8(
const F & f,
std::size_t l,
T & t
);