widechartomultibyte (kernel32)
Last changed: -213.1.249.253

.
Summary

C# Signature:

[DllImport("kernel32.dll")]
static extern int WideCharToMultiByte(uint CodePage, uint dwFlags,
   [MarshalAs(UnmanagedType.LPWStr)] string lpWideCharStr, int cchWideChar,
   [MarshalAs(UnmanagedType.LPArray)] Byte[] lpMultiByteStr, int cbMultiByte, IntPtr lpDefaultChar,
   out bool lpUsedDefaultChar);

old version:
[DllImport("kernel32.dll")]
static extern int WideCharToMultiByte(uint CodePage, uint dwFlags,
   [MarshalAs(UnmanagedType.LPWStr)] string lpWideCharStr, int cchWideChar,
   string lpMultiByteStr, int cbMultiByte, IntPtr lpDefaultChar,
   out bool lpUsedDefaultChar);

User-Defined Types:

const uint CP_ACP = 0;
const uint CP_OEMCP = 1;
const uint CP_SYMBOL = 42;
const uint CP_UTF7 = 65000;
const uint CP_UTF8 = 65001;
const uint CP_GB2312 = 936;
const uint CP_BIG5 = 950;
const uint CP_SHIFTJIS = 932;

Notes:

None.

Tips & Tricks:

Please add some!

Sample Code:

Int32  iNewDataLen = 0;
Byte[] byNewData = null;
bool   bDefaultChar = false;

iNewDataLen = WideCharToMultiByte(CP_ACP, 0, strData, strData.Length, null, 0, IntPtr.Zero, out bDefaultChar);
byNewData = new Byte[iNewDataLen + 2];
iNewDataLen = WideCharToMultiByte(CP_ACP, 0, strData, strData.Length, byNewData, iNewDataLen, IntPtr.Zero, out bDefaultChar);

Alternative Managed API:

System.Text.Encoding.GetBytes()

Documentation