class Poco::UnicodeConverter

Overview

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

#include <UnicodeConverter.h>

class UnicodeConverter
{
public:
    // methods

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Detailed Documentation

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 ???

Methods

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

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

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.

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.

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

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

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.

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.

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

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

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

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

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.

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.

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.

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.

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

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