C++宽字节与多字节的转换
在Windows上编写代码的时候,都应该使用Unicode,但是往往在项目中,总会遇到一些 不方便的地方,例如,读写磁盘,加密等等。因此,以下给出2个函数,用于多字节与宽自己的转换,主要使用Windows提供的 WideCharToMultiByte与MultiByteToWideChar函数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// 将Unicode字符串转换为Ansicode字符串 void ConvertUnicodeToAnsi(wchar_t* source, char* dest) { int len = 0; len = WideCharToMultiByte(CP_ACP, 0, source, -1, NULL, 0, NULL, NULL); WideCharToMultiByte(CP_ACP, 0, source, -1, dest, len, NULL, NULL); } // 将Ansicode字符串转换为Unicode字符串 void ConvertAnsiToUnicode(char* source, wchar_t* dest) { int len = 0; len = MultiByteToWideChar(CP_ACP, 0, source, -1, NULL, 0); MultiByteToWideChar(CP_ACP, 0, source, -1, dest, len); } |
尽管互联网上到处都是,不过还是自己写的代码比较熟悉,也可以省去搜索的时间。