李锦俊(mybios)的blog

游戏开发 C++ Cocos2d-x OpenGL DirectX 数学 计算机图形学 SQL Server

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  86 Posts :: 0 Stories :: 370 Comments :: 0 Trackbacks

公告

QQ:30743734
EMain:mybios@qq.com

常用链接

留言簿(16)

我参与的团队

最新随笔

搜索

  •  

积分与排名

  • 积分 - 366556
  • 排名 - 67

最新评论

阅读排行榜

评论排行榜

用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
posted on 2006-11-30 16:30 李锦俊(mybios) 阅读(4064) 评论(0)  编辑 收藏 引用 所属分类: C++

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理