widechartomultibyte

C++
Maps a UTF-16 (wide character) string to a new character string. 
The new character string is not necessarily from a multibyte character set.

int WideCharToMultiByte(
  UINT                               CodePage,
  DWORD                              dwFlags,
  _In_NLS_string_(cchWideChar)LPCWCH lpWideCharStr,
  int                                cchWideChar,
  LPSTR                              lpMultiByteStr,
  int                                cbMultiByte,
  LPCCH                              lpDefaultChar,
  LPBOOL                             lpUsedDefaultChar
);

// Header	stringapiset.h (include Windows.h)
Source

Also in C++: