正文

unicode问题2008-08-23 18:55:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/lqf110/37818.html

分享到:

我不知道vc中所谓的unicode究竟指的是什么,我现在对这个概念很模糊。microsoft总是把unicode和宽字符集混用。如此推断,它应该指的是utf-16或者ucs-2?

其次便是win下locale的问题。它的locale当然不是zh_CN.GB2312这种。(我真是奇怪为什么当年ISO在制定locale相关函数的时候既然把locale的分类都规定了,为什么不把locale的具体名称也给个ISO规范出来呢?想想可怜的程序员,比如得写
#ifdef _WIN32
std::string locale="chs";
#else
std::string locale="zh_CN.GB2312";
#endif
My god!)

vc下如果locale忘记了设置(默认是"C")或者设置不当,那么atoi等函数不能使用,且宽字节的stream,例如std::wcout, std::wfstream都不能输出中文,一旦输出中文,这个stream的状态就会变成bad。而默认情况下stream是不抛出异常的,所以很多人就完全忽略这样的错误了,只是在程序执行完后才发现自己什么都没有得到。

阅读(2080) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册