The following code example is taken from the book
The C++ Standard Library - A Tutorial and Reference, 2nd Edition
by Nicolai M. Josuttis, Addison Wesley Longman, 2012
Copyright © 2012 by Pearson Education, Inc. and Nicolai M. Josuttis
#include <string>
#include <iostream>
#include <codecvt>
using namespace std;
int main()
{
// create input stream reading UTF-8 sequences:
wbuffer_convert<codecvt_utf8<wchar_t>> utf8inBuf(cin.rdbuf());
wistream utf8in(&utf8inBuf);
// create output stream writing UTF-16 sequences:
wbuffer_convert<codecvt_utf16<wchar_t,
0xFFFF,
generate_header>>
utf16outBuf(cout.rdbuf());
wostream utf16out(&utf16outBuf);
// write each character read:
wchar_t c;
while (utf8in.get(c)) {
utf16out.put(c);
}
}