Windows的字符编码主要有以下几个注意点
1.Windows Vista 中每个Unicode字符都是 UTF-16编码, 且是默认编码。.Net Framework始终使用UTF-16来编码。
开发Windows程序中,如果需要本机代码和托管代码之间传递字符或字符串,使用UTF-16可以改进性能减少内存消耗
2.C语言中char数据类型表示一个8位的ANSI字符,
Microsoft C/C++ 编译器又定义了一个内建的数据类型wchar_t表示16位的Unicode字符
Windows团队又为了区分自己定义的数据类型,在WinNT.h中定义了 typedef char CHAR; typedef wchar_t WCHAR
3.Windows版本里面的参数列表含有字符串的时候分2个版本末尾带有大写W表示接受Unicode字符串,末尾带有A的表示接受
ANSI字符串,而接受ANSI字符串的API其实只是一个转换层,负责分配内存,将ANSI字符串转换成Unicode字符串,然后代码
调用Unicode字符串的API,返回的时候,ANSI会释放它的内存缓冲区,Unicode字符串转换成非Unicode的形式返回回来,
因此速度比较慢,消耗内存。
4.同样C运行库也提供了一系列函数处理ANSI字符串和Unicode字符串,但是ANSI字符串操作的时候不用转换成Unicode字符串
5.推荐使用的字符和字符串处理方式