/UnicodeConversions

C++ code implementing Unicode UTF-8/UTF-16 encoding conversions using Win32 APIs

Primary LanguageC++MIT LicenseMIT

UnicodeConversions

C++ code implementing Unicode UTF-8/UTF-16 encoding conversions using Win32 APIs

by Giovanni Dicanio (e-mail: <giovanni.dicanio AT gmail.com>)

This repository contains C++ reusable code implementing Unicode encoding conversions between UTF-8 and UTF-16.

The reusable conversion code is implemented as a header-only library, and can be found in the subfolder named utf8conv.

This code is based on my MSDN Magazine article published on the 2016 September issue:

C++ - Unicode Encoding Conversions with STL Strings and Win32 APIs

This code uses STL strings (std::string for UTF-8 and std::wstring for UTF-16) and direct calls to the Win32 APIs MultiByteToWideChar() and WideCharToMultiByte(), and C++ exceptions to report conversion errors (more details can be found in the utf8conv.h header).

The included Visual Studio 2015 solution contains a simple unit-test and a performance benchmark testing this custom code vs. standard C++ Unicode encoding converters.