第一种使用C#自己的方法Encoding:
public string convEncode(string write,string fromEncode,string toEncode)
{
//声明字符集
Encoding From,To;
From = Encoding.GetEncoding(fromEncode);
To = Encoding.GetEncoding(toEncode);
byte[] temp = From.GetBytes(write);
byte[] temp1 = Encoding.Convert(From,To,temp);
//返回转换后的字符
return To.GetString(temp1);
}
第二种调用C++的MultiByteToWideChar方法,即
[DllImport("kernel32.dll")]
public static extern int MultiByteToWideChar ( int CodePage, int dwFlags,string lpMultiByteStr,
int cchMultiByte, [MarshalAs(UnmanagedType.LPWStr)]string lpWideCharStr, int cchWideChar);
public string MByteToWChar(string content,int toEncode)
{
//字符编码转换 gb2312:936 utf-8:65001 big5:950 latin1:1252
int len = pInvoke.MultiByteToWideChar(toEncode,0,content,-1,null,0);
char[] temp = new char[len];
string content1 = new string(temp);
pInvoke.MultiByteToWideChar(toEncode,0,content,-1,content1,len);
return content1;
}