【Visual C++ 2010】Unicode和ANSI的一些注意事项

来源:互联网 发布:淦什么意思网络用语 编辑:程序博客网 时间:2024/05/16 15:25
ANSI:类型定义为char 
占一个字节
判断长度strlen() 
注意:对于strlen()函数,判断长度结束的准则是是否遇到\0字符,如果用来判断wchar_t类型的的长度会出现错误。因为wchar_t占有2个字节,对应的ANSI字符的高位就是0,所以会提前结束。
Unicode:
类型定义为whcar_t 
占两个字节
判断长度为wcslen()
在Windows Vista系统中,使用的都是UTF-16编码(Unicode Transformation Format),该编码方式将每个字符编码为2个字节大小。对于16位(两个字节)不足以表示的字符,该编码支持使用代理(surrogate),可以将2字节大小扩展为4个字节大小。
对于char和wchar_t的转换,建议使用WideCharToMultiByte()和MultiByteToWideChar()实现。
0 0