用C函数来转换Unicode和ANSI文字

char sChar[MAX_PATH];
const WCHAR wChar[] = L"我的朋友";
// 把wChar这个Unicode字符串转换成ANSI字符串,保存到sChar,并且返回ANSI的字符串大小,如果失败,则返回-1
  wcstombs(sChar, wChar, MAX_PATH);

这样是运行不过不去的,总是返回-1。

后来经人提醒,需要在调用wcstombs之前要先设置代码页:

char sChar[MAX_PATH];
const WCHAR wChar[] = L"我的朋友";

// 设置代码页为默认代码页
  _tsetlocale(LC_ALL,_T(""));
// 把wChar这个Unicode字符串转换成ANSI字符串,保存到sChar,并且返回ANSI的字符串大小,如果失败,则返回-1
  wcstombs(sChar, wChar, MAX_PATH);


这样就可以了!不用调用烦人的WideCharToMultiByte!多好啊!
相反的函数:mbstowcs,可以从ANSI转换到Unicode

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-30
猜你喜欢
  • 2022-12-23
  • 2021-06-23
  • 2021-12-20
  • 2021-09-27
  • 2022-12-23
  • 2022-12-23
  • 2021-06-22
相关资源
相似解决方案