字符转Unicode,unicode和多字节

  字符转Unicode,unicode和多字节

  最近用GTK,发现GTK真的是个好东西,因为基于插件的编程,写跨平台的DLL(Linux里叫共享库)GTK都有用。但是,在Windows平台上使用GTK有一个问题需要注意,那就是GTK使用的是Unicode字符集。如果在Windows平台上使用多字节字符集进行编译,GTK函数的错误信息将是一堆乱码。因此,在用多字节字符集编译GTK函数时,要特别注意这个问题。

  但是我在网上查了一些资料,实现了Unicode字符到多字节字符的转换。GTK函数g_module_error显示插件的最后一条错误消息。下面以调用函数g_module_error为例,谈谈如何将多字节字符转换成Unicode字符:

  #ifdef _DEBUG //我在调试程序的时候一般会使用下面的代码。

  如果(!模块)

  int nLen=MultiByteToWideChar(CP _ UTF8,0,g_module_error(),-1,NULL,NULL);//

  LPWSTR lpwsz=new WCHAR[nLen];

  MultiByteToWideChar( CP_UTF8,0,g_module_error(),-1,lpwsz,nLen);//

  int nLen 1=WideCharToMultiByte(CP _ ACP,0,lpwsz,nLen,NULL,NULL,NULL,NULL);

  LPSTR lpsz=new CHAR[nlen 1];

  WideCharToMultiByte( CP_ACP,0,lpwsz,nLen,lpsz,nLen1,NULL,NULL);//转换后,得到多字节字符。

  OutputDebugString(lpsz);

  删除[]lpwsz;

  删除[]lpsz;

  #endif

字符转Unicode,unicode和多字节